我有一个span
,其中包含我想要使用的文字。但是在这个span
中,我想忽略h2
。 (这不是我的标记,我无法改变这一点,因此移动h2
以外的span
不是一种选择)
这是标记:
<span>
<h2>Joe Bloggs</h2>
Executive Director
</span>
以下是我目前的代码,其中包含span
h2
内容
currentLi = $('ul#example2 li.frame3');
position = $(currentLi).find('span').text();
所以我充满希望的结果将是变量position
包含文本&#34;执行董事&#34;
答案 0 :(得分:3)
克隆范围,删除<h2>
,然后获取剩余文字。
var clone = $(document).find('span').clone();
$(clone).find('h2').remove();
var position = $(clone).text().trim();
的工作演示
答案 1 :(得分:3)
如何将filter
与.contents
一起使用。在filter
函数中,您可以评估nodeType
属性,确保它是3
(仅限文本节点):
var onlySpan = $("span").contents().filter(function () {
return this.nodeType === 3;
}).text().trim();
答案 2 :(得分:0)
这是我永远不会建议您的,但根据您的要求,以下代码可以正常工作。
var index = position.indexOf('</h2>');
position = position.substring(index+5, position.length)
alert(position);
答案 3 :(得分:0)
答案 4 :(得分:0)
你也可以使用not过滤器。
currentLi = $('ul#example2 li.frame3');
position = $(currentLi).find('span:not(h2).text()').text();
您也可以使用非方法
span.not(h2)