Javascript在元素内获取类文本
我的html中有一堆span4类元素。它们看起来像这样: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类中的文本呢 我
<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的代码并修复了他们询问的部分。我纠正了它。像其他解决方案一样,你得到了我想要的;)谢谢你的帮助!