Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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-获取不包含子文本的元素的文本_Javascript_Jquery - Fatal编程技术网

Javascript jquery-获取不包含子文本的元素的文本

Javascript jquery-获取不包含子文本的元素的文本,javascript,jquery,Javascript,Jquery,例如,我们有这个文件 <div id="mydiv"> some text here <div id="inner div"> text for inner div </div> </div> 嘿,请试试这个: 这里有一个很好的链接,适合您的具体情况:(这将只获取元素的文本) 希望这有帮助,:) 代码 jQuery.fn.justtext = function() { return $(thi

例如,我们有这个文件

<div id="mydiv">
    some text here 
    <div id="inner div">
         text for inner div
    </div>
</div>
嘿,请试试这个:

这里有一个很好的链接,适合您的具体情况:(这将只获取元素的文本)

希望这有帮助,
:)

代码

jQuery.fn.justtext = function() {

    return $(this).clone()
            .children()
            .remove()
            .end()
            .text();

};

alert($('#mydiv').justtext());​
目前的性能非常糟糕,因此我觉得有义务编写一个更轻量级的:

$.fn.mytext = function() {
    var str = '';

    this.contents().each(function() {
        if (this.nodeType == 3) {
            str += this.textContent || this.innerText || '';
        }
    });

    return str;
};

console.log($('#mydiv').mytext());​
类似于但不需要显式迭代(通过.each())和收集
textContent
s:

$('#mydiv').contents().filter(function(){return this.nodeType === 3}).text()
或者,如果可以使用箭头功能:

$('#mydiv').contents().filter((i, el) => el.nodeType === 3).text()

那么您想要所有子文本节点,而不需要更深层嵌套的文本节点?+1用于使用.end()。从不知道它的存在,现在它很有用。@Grinn saweet bruv,是的,有一些jq API,使用非常好,但没有广泛使用:)有趣的是,嗯,感谢加1。这似乎在Win XP IE 8中崩溃了,
克隆
儿童
仍在努力解决这个问题。好多了!我正在寻找一个way来迭代所选元素的每个子元素,我不知道
contents()
,谢谢!
$('#mydiv').contents().filter((i, el) => el.nodeType === 3).text()