Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Jquery检索元素的textnode而不获取降序元素textnodes?_Javascript_Jquery - Fatal编程技术网

Javascript 如何使用Jquery检索元素的textnode而不获取降序元素textnodes?

Javascript 如何使用Jquery检索元素的textnode而不获取降序元素textnodes?,javascript,jquery,Javascript,Jquery,我只想检索文本“域名” 我尝试过使用$('a').text(),但这也会得到降序SPAN标记中的文本。有没有办法只选择标记中的第一个文本节点 我不知道怎么做 .contents('not:(span')也不起作用。您可以使用DOM方法: var el = document.getElementById("your_element_id"); var child, textBits = []; for (var i = 0; i < el.childNodes.length; ++i) {


我只想检索文本“域名”

我尝试过使用$('a').text(),但这也会得到降序SPAN标记中的文本。有没有办法只选择标记中的第一个文本节点

我不知道怎么做


.contents('not:(span')也不起作用。

您可以使用DOM方法:

var el = document.getElementById("your_element_id");
var child, textBits = [];
for (var i = 0; i < el.childNodes.length; ++i) {
    child = el.childNodes[i];
    if (child.nodeType == 3) {
        textBits.push(child.nodeValue);
    }
}
window.alert( textBits.join("") );
var el=document.getElementById(“您的元素id”);
变量子项,textBits=[];
对于(变量i=0;i
您可以只使用DOM方法:

var el = document.getElementById("your_element_id");
var child, textBits = [];
for (var i = 0; i < el.childNodes.length; ++i) {
    child = el.childNodes[i];
    if (child.nodeType == 3) {
        textBits.push(child.nodeValue);
    }
}
window.alert( textBits.join("") );
var el=document.getElementById(“您的元素id”);
变量子项,textBits=[];
对于(变量i=0;i
我找到了一条路

$('a').get(0.firstElementChild.firstChild.wholeText

我找到了一个方法

$('a').get(0.firstElementChild.firstChild.wholeText

根据我对问题的回答,这应该适合您。this.nodeType==3确定它是文本节点。目前,这将获取所有文本节点的文本(但适用于您的示例)。如果在跨度之后有文本节点,则必须修改此项以仅获得第一个节点

var text = $('a') 
    .contents() 
    .filter(function() { 
        return this.nodeType == 3;
        //return this.nodeType == Node.TEXT_NODE;  this works unless using IE 7
    })
    .text(); 
根据我对这个问题的回答,这应该适合你们。this.nodeType==3确定它是文本节点。目前,这将获取所有文本节点的文本(但适用于您的示例)。如果在跨度之后有文本节点,则必须修改此项以仅获得第一个节点

var text = $('a') 
    .contents() 
    .filter(function() { 
        return this.nodeType == 3;
        //return this.nodeType == Node.TEXT_NODE;  this works unless using IE 7
    })
    .text(); 

哇!这可能是特定于firefox的代码,在IE.Wops中不起作用!这可能是特定于firefox的代码,在IE中不起作用。谢谢,我尝试了你的方法,它成功了。我改进了它,因为我知道它是第一个子节点
.get(0).firstChild.nodeValue.get(0).firstChild.nodeValue