所以大家好,我有一些这样的HTML:
<ul id="view-id54795_breadcrumbs" class="xbreadcrumbs">
<li id="view-id54795_bcitem0" class="ncurrent">All XYZ</li>
<li id="view-id54795_bcitem1" class="current">ABC</li>
</ul>
我需要孩子们的文字,所以我从简单的功能开始,如:
console.log($('#'+t.view.id+'_breadcrumbs').childNodes);
//console.log($('#'+t.view.id+'_breadcrumbs').getChildren());
两者都没有用。我也尝试了下面的功能
$(function(){
var child = $('#'+t.view.id+'_breadcrumbs').find('li.t.view.id_');
console.log(child.innerHTML);
var idArray = new Array();
if(child.length) {
$.each(child,function(i,entry) {
idArray.push($(this).attr('id'));
});
}
console.log(idArray);
});
PS。
上面的功能代码取自参考文章using jquery .find() to get children。 任何建议都将受到高度赞赏。
谢谢。
答案 0 :(得分:2)
这个选择器呢?
$('.xbreadcrumbs li')
更完整的版本将是:
$(function(){
var children = $('.xbreadcrumbs li');
children.each(function(i,v)
{
console.log($(v).text());
});
});
答案 1 :(得分:0)
var list = document.getElementById('view-id54795_breadcrumbs');
list.forEach(function(element) {
console.log(element.innerHTML);
});
注意:forEach仅在ECMAScript 5实现中可用,对不起vanilla JS,我不知道jQuery
答案 2 :(得分:0)
尝试这样的事情:
var ul = $('#'+t.view.id+'_breadcrumbs');
var children = ul.find('li[id^="' + t.view.id + '"]');
var childText = [];
for(var i = 0; i < children.length; i++){
childText.push(children[i].innerHTML);
}
jQuery find使用&#39; startsWith&#39;选择器,因此将返回以li
开头的任何t.view.id
。
应使用每个li
文本填充childText。
请参阅fiddle
答案 3 :(得分:0)
只需选择你的ul并执行.find()传递li标签选择器
$(function(){
var children = $('#view-id54795_breadcrumbs').find('li');
var idArray = new Array();
if(children.length) {
$.each(child,function(i,entry) {
console.log($(this).html());
idArray.push($(this).attr('id'));
});
}
console.log(idArray);
});