对于使用纯JS解决这个问题,我有些偏爱,但是如果jQuery版本更简单,那么jQuery也可以。实际上情况是这样的

<span id="thisone">
 The info I want
 <span id="notthisone">
  I don't want any of this nonsense
 </span>
</span>

我实际上想得到The info I want但不是The info I want I don't want any of this nonsense我特别不想The info I want <span id="notthisone"> I don't want any of this nonsense </span>不幸的是,这就是我现在得到的...

我该怎么做?

最佳答案

仅使用js:

试用: http://jsfiddle.net/g4tRn/

var result = document.getElementById('thisone').firstChild.nodeValue;

​alert(result);​

使用jQuery:

试用: http://jsfiddle.net/g4tRn/1
var result = $('#thisone').contents().first().text();

alert(result);​

奖励:

如果要获取的外部<span>中还有其他文本节点,则可以执行以下操作:

试用: http://jsfiddle.net/g4tRn/4
var nodes = document.getElementById('thisone').childNodes;
var result = '';

for(var i = 0; i < nodes.length; i++) {
    if(nodes[i].nodeType == 3) {       // If it is a text node,
        result += nodes[i].nodeValue;  //    add its text to the result
    }
}

alert(result);
​

关于javascript - 在没有子元素的情况下获取元素的内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3172166/

10-13 07:35