如何获取内部有html标签的链接的确切文本值?

时间:2015-08-24 07:11:25

标签: jquery html

我需要获取嵌套的html链接元素的确切文本值。我理解你是否想获得这个元素的文本值

<a id="mylink" >Hello</a>

只是

$("#mylink").text();

但在这种情况下我有

<a id="mylink" >Hello <label id="mylab" >Hi!...</label></a>

我只需要内部文本值 Hello 。我不需要标签的价值。我如何在jQuery中执行此操作?

4 个答案:

答案 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

Here is the JSFiddle demo

contents()[0]中的索引代表应返回的文字,其中0是第一个,1是第二个,2是第三个,等等。 ..

答案 2 :(得分:1)

如何克隆元素,删除()子元素然后获取文本?

var div = $("#mylink").clone();
div.children().remove();
var output = div.text();

小提琴:http://jsfiddle.net/roboroads/bcj7z1rc/

答案 3 :(得分:0)

只需拥有此功能

function getText(elm) {
    return $(elm)
        .clone()
        .children()
        .remove()
        .end()
        .text()
        .trim();
}

传递元素,您将获得没有任何子节点值的文本。