递归.children()以搜索id属性

时间:2010-12-09 11:34:45

标签: javascript jquery recursion

我是jQuery的新手,熟悉PHP& CSS。我有嵌套的,动态生成的div,我想发送(id)到服务器端脚本来更新数字。我想检查.content类中的所有内容。只有带有id的div才能被发送处理;但是我在制作递归子()检查方面遇到了麻烦...这是我能做的最好的(非递归):

$(".content").children().each(function() {
    if ($(this).attr('id').length == 0) {
        $(this).children().each(function() {
            if ($(this).attr('id').length == 0) {
                $(this).children().each(function() {
                    if ($(this).attr('id').length == 0) {
                        $(this).children().each(function() {
                            alert($(this).attr('id'));
                        });
                    }
                });
            }
        });
    }
});

它只是提醒()是应该在的级别的所有内容的ID。必须有更好的方法来做到这一点...提前感谢您的任何建议。 -Justin

2 个答案:

答案 0 :(得分:5)

尝试:

var ids = $('.content div[id]').map(function() {
    return this.id;
}).get();

.content div[id]将选择具有非空ID属性的.content的所有div后代(在任何级别)。 [id]部分是Has Attribute选择器的示例。

我使用过.map。提取匹配的ID,.get()将结果对象转换为基本数组。

在此处试试:http://jsfiddle.net/M96yK/

答案 1 :(得分:1)

你可以这样做:

$(".content div[id]");

这将返回一个jQuery对象,其中包含所有具有id指定的div

相关问题