I'm not sure how to do it in a "jQuery" way. But here's what I came up
with:

$( function(){
        $("p").each( function() {
                var allButSpan = this.allButSpan = new Array();
                $.each(this.childNodes, function(i, node) {
                        if (node.nodeName.toLowerCase() != "span")
{ allButSpan[allButSpan.length] = node; }
                });
        });

        $("p").each( function(){
                var innerHtml = "";
                $.each(this.allButSpan, function(i, node) { innerHtml +=
(node.nodeType == 3) ? node.data : $(node).html(); } );
                console.log(innerHtml);
        });
});

Example here: http://joeflateau.net/playground/testingpexcspan.html

You need Firebug (or anything that supports console.log) to use the
example!

On Sep 30, 12:20 pm, Pedram <[EMAIL PROTECTED]> wrote:
> It didn't work Cause the Text isn't concern as a Children and it is in
> No Tag area ....  so when we call $(this).children it returns only the
> Span and if we do $(this).children(":not(span)") it returns NULL ...
> so Equally..... what should we do
>
> On Sep 30, 5:34 pm, equallyunequal <[EMAIL PROTECTED]> wrote:
>
> > Ok, how about something to the effect of:
>
> > $("p").each(function() { $
> > (this).children(":not(span)").css({color:"red"}); });
>
> > On Sep 30, 8:12 am, [EMAIL PROTECTED] wrote:
>
> > > If I do this with CLone then all my prossesing is with the clone but I
> > > need to have a selector in the Original one not in the Clone so
> > > changing and modifying the clone is not necessary ,the only way is get
> > > a Clone of THe Span Then Remove the Span and then get the content of
> > > the P do some changes on it , after that add the Span again And I
> > > think this is not the right way to Deal with this ...
> > > I'm still working on thiws and waiting for the best way to it
> > > Thanks Pedram
>
> > > On Sep 30, 7:36 am, equallyunequal <[EMAIL PROTECTED]> wrote:
>
> > > > $("p:not(span)") would select all paragraphs that are not spans...
> > > > which would be all paragraphs even if they have a child that is a
> > > > span.
> > > > $("p :not(span)") or $("p *:not(span)") would select all paragraphs
> > > > without child spans... which would be none of the paragraphs.
>
> > > > He needs the contents of all paragraphs minus the content of a span.
> > > > The only way (I can think of) to non-destructively get the contents of
> > > > an element minus some of its children is to clone it first, then
> > > > remove the children.
>
> > > > On Sep 29, 3:33 pm, dasacc22 <[EMAIL PROTECTED]> wrote:
>
> > > > > um cant you just do something like $("p:not(span)") ??
>
> > > > > On Sep 28, 3:48 pm, equallyunequal <[EMAIL PROTECTED]> wrote:
>
> > > > > > This should work:
>
> > > > > > var clone = $("p").clone();
> > > > > > clone.find("span").remove();
>
> > > > > > clone.each( function() { console.log(this) } );
>
> > > > > > On Sep 28, 2:13 pm, [EMAIL PROTECTED] wrote:
>
> > > > > > > Hi Guys,
>
> > > > > > > this is the Code which I am working on
>
> > > > > > > <p>
> > > > > > >   Data which I need to select and it hasn't  an attribute
> > > > > > >   <span> Data in a Span </span>
> > > > > > > </p>
> > > > > > > <p>
> > > > > > >   Data which I need to select and it hasn't  an attribute
> > > > > > >   <span> Data in a Span </span>
> > > > > > > </p>
> > > > > > > <p>
> > > > > > >   Data which I need to select and it hasn't  an attribute
> > > > > > >   <span> Data in a Span </span>
> > > > > > > </p>
> > > > > > > How could FIlter and Select the text Before the <span>
> > > > > > > does someone has an Idea ?

Reply via email to