<p>
ppppppppppppppppppp...<span class="more">ssssssssssssssssss<span/>
</p>
比如我有如上的片段 如果运用jQuery从<span>元素开始操作到<p>里面的文本但是不影响<span>里面的内容
我现在是这样写...
$('span.more').show(function() {
            $(this).parent().css('color', 'red');
            $(this).css('color', 'black');
        });
我始终不能通过连缀直接实现上面所说的效果
求赐教.....

解决方案 »

  1.   

    $(this).parent().css('color', 'red').end().css('color', 'black');你是 要这个效果吗
      

  2.   

    你找个其实和我差不多啊
    我也想过end()
    但是能不是直接就是取到<p>里面不包含<span>的元素?
      

  3.   

    ok,修改p标签下面的内容,不改变span里面的内容。希望对楼主有帮助! $("span").bind("click", function () {
                var zhi = "";
                //获取p标签的内容
                zhi = $("span.more").parent().html();
                //截取span前面的内容
                var content = zhi.substring(0, zhi.indexOf("<"));
                //截取span标签与包裹的内容
                var spanContent = zhi.substring(zhi.indexOf("<"));
                //新的内容
                var Newcontent = "我是p得小蜜,换我上了";
                //添加到p标签里面
                $("span.more").parent().html(Newcontent + spanContent);        })
      

  4.   

    哦,忘了。刚刚跟span加了个样式。调用并没有收到影响。
     <style type="text/css">
            .more
            {
                color: Red;
            }
        </style>
      

  5.   

    谢谢楼上了
    jquery中有没有直接的函数可以取到啊?
    比如find not之类的,看起来可以漂亮些
      

  6.   

    $('p *:not(span)')
    你是指这个?
      

  7.   

    <body>
        <p>
            <span >ppppppppppppppppppp...</span><span class="more">ssssssssssssssssss</span>
        </p>
    </body>
        $('p *:not(span[class="more"])').css('color', 'red');
        $(this).css('color', 'black');
      

  8.   

    $('p *:not(span)')
    这个貌似没有效果....那就是说不可能直接取到不包含<span>的元素了?