我需要获取嵌套的html链接元素的确切文本值。我理解你是否想获得这个元素的文本值
<a id="mylink" >Hello</a>
只是
$("#mylink").text();
但在这种情况下我有
<a id="mylink" >Hello <label id="mylab" >Hi!...</label></a>
我只需要内部文本值 Hello 。我不需要标签的价值。我如何在jQuery中执行此操作?
答案 0 :(得分:4)
您可以使用:has
选择器来获取其中包含标签的锚元素。获得第二部分(即在元素中获取文本节点)可以很容易地用Google搜索来获得不同的解决方案:
$('a:has(label)').contents().filter(function() {
return this.nodeType === 3; //Node.TEXT_NODE
});
<强> Working Demo 强>
答案 1 :(得分:1)
我就是这样做的:
$($("#mylink").contents()[0]).text(); // gives you the first text
$($("#mylink").contents()[1]).text(); //gives u the second text
contents()[0]
中的索引代表应返回的文字,其中0
是第一个,1
是第二个,2
是第三个,等等。 ..
答案 2 :(得分:1)
如何克隆元素,删除()子元素然后获取文本?
var div = $("#mylink").clone();
div.children().remove();
var output = div.text();
答案 3 :(得分:0)
只需拥有此功能
function getText(elm) {
return $(elm)
.clone()
.children()
.remove()
.end()
.text()
.trim();
}
传递元素,您将获得没有任何子节点值的文本。