0

所以我有这样的事情:

<span class="a"> Contents <span class="b">Herp</span><br></span>

...其中“内容”可能从string单个图像多个 linebreaks不等。我需要将“内容”定义为变量而不获取 b.span 和 br。

你怎么做呢?非常感谢您!

4

6 回答 6

2

用于.contents()获取所有内容,然后应用该.slice()方法切掉最后两个:

$("span.a").contents().slice(0,-2)
于 2012-06-19T06:13:32.170 回答
1
alert($('span.a').text()); //will alert 'Contents'
于 2012-06-19T06:03:52.290 回答
1
var clone = $('span.a').clone();
$('span.b', clone).remove();
var text = clone.text();
console.log(text);
于 2012-06-19T06:19:31.300 回答
0

如果您想要除最后 2 项之外的所有内容,请尝试:

var $content= $(".a").contents();

var htmlnodes = $content.filter(function(ndx) {
  return (ndx < $content.length -2);
});

    console.log(htmlnodes);​
于 2012-06-19T06:09:33.907 回答
0

您可以将元素 A 粘贴在变量中。

var $a = $('.a').children().remove();
alert($('.a').html().append($a));​​

在这个例子中,我们没有硬编码应该删除或切片或其他任何元素的数量。它稍微优雅一些​​。

于 2012-06-19T06:15:36.590 回答
0
var c = $('.b').nextAll('br').remove().end().parent().find('.b').remove().end().html();
alert(c)

这里

于 2012-06-19T06:20:25.980 回答