获取Child内部HTML

时间:2014-08-15 00:17:06

标签: javascript jquery html web

所以大家好,我有一些这样的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。 任何建议都将受到高度赞赏。

谢谢。

4 个答案:

答案 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);                               

});