Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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在元素内获取类文本_Javascript_Jquery_Html - Fatal编程技术网

Javascript在元素内获取类文本

Javascript在元素内获取类文本,javascript,jquery,html,Javascript,Jquery,Html,我的html中有一堆span4类元素。它们看起来像这样: <div class="span4"> <div class="widget"> <div class="header">blablabla</div> </div> </div> $('.span4').find('.header').text(); 但是如何选择header类中的文本呢 我

我的html中有一堆span4类元素。它们看起来像这样:

    <div class="span4">
        <div class="widget">
            <div class="header">blablabla</div>
        </div>
    </div>
$('.span4').find('.header').text();
但是如何选择header类中的文本呢

我正在这么做,但我想还有更好的办法

    function sortAlphaAsc(a,b){  
        var nomeA = $(a.childNodes[1].childNodes[1]).text();
        var nomeB = $(b.childNodes[1].childNodes[1]).text();
        return a.innerHTML.toLowerCase() > b.innerHTML.toLowerCase() ? 1 : -1;  
    };
一定有比这更好的方法

$(a.childNodes[1].childNodes[1]).text()
试试这个:

function sortAlphaAsc(a,b){  
    var nomeA = $(a).find('div.header').text();
    var nomeB = $(b).find('div.header').text();
    return nomeA.toLowerCase() > nomeB.toLowerCase();  
};

你的意思是这样的吗:

    <div class="span4">
        <div class="widget">
            <div class="header">blablabla</div>
        </div>
    </div>
$('.span4').find('.header').text();

这将返回标题div内的文本。

您可以分离跨距、排序并附加它们。 这也会非常快,因为更改内存中的元素并且最终只更新一次DOM是非常有效的

var $spans = $(".span4").detach();

var sortedSpans = $spans.sort(function(spanA, spanB) {
    var spanTextA = $("div.header", spanA).text();
    var spanTextB = $("div.header", spanB).text();
    
    return spanTextA > spanTextB;
});

$("body").append(sortedSpans);
显然,您不是将它附加回实际的容器元素,而是将它附加回实际的容器元素

或者,如果跨度位于公共容器中,则将父级存储在缓存
var$parent=$span.parent()
中,最后只需执行$
parent.html(sortedspan)

我不知道你的全部分数,但那应该让你开始


-分离跨距,对它们进行排序,然后再次追加$('.span4').find('.header').text()?如何
a.find('.header').text()
?在return语句中不使用该变量,只需删除它们:)。此外,我认为可以避免丢失三元:
返回a.innerHTML.toLowerCase()>b.innerHTML.toLowerCase()@未定义,我只是复制了OP的代码并修复了他们询问的部分。我纠正了它。像其他解决方案一样,你得到了我想要的;)谢谢你的帮助!