使用jquery获取.html(),除了child的内容

时间:2014-06-24 16:04:42

标签: javascript jquery html

有点神秘的话题,但这就是我想要做的......

说我有一个包含以下HTML的列表

<ul> 
    <li> I want to be selected <span class="skipme">but I rather not</span> </li>
</ul>

现在我想获取<li>内的所有html /文本,但来自标识为.skipme的子项的内容除外。

我如何实现这一目标?

我一直在玩没有选择器而没有任何运气。 e.g。

var MyHtml = $('ul li').not('skipme').html();
console.log(MyHtml)

打印I want to be selected <span class="skipme">but I rather not</span>而不是我想要的I want to be selected

4 个答案:

答案 0 :(得分:4)

您可以使用:

$("ul li").clone().children().remove().end().text();   

<强> Demo

删除具有特定类别的元素:

$("ul li").clone().children('.skipme').remove().end().text();   
                               ^
                               |____ add selector here

<强> Working Demo

答案 1 :(得分:0)

你可以这样做:

var text = $('ul li')[0].firstChild.nodeValue;

<强> Demo

答案 2 :(得分:0)

我认为你有一个项目列表,所以我会像这样循环:

$('ul li').each(function(i) {
    var replacedText = $(this).text().replace($(this).find('.skipme').text(), '');
    // console.log(replacedText);
});

答案 3 :(得分:-2)

您可以使用jquery选择器

来尝试
$('ul li').before($('.skipme')).html();

Demo