递归 .children() 搜索 id 属性

发布于 2024-10-07 10:16:36 字数 780 浏览 4 评论 0原文

我是 jQuery 新手,熟悉 PHP 和 PHP。 CSS。我已经嵌套了动态生成的 div,我希望将其发送(id)到服务器端脚本以更新数字。我想检查 .content 类中的所有内容。只应发送带有 id 的 div 进行处理;然而我在进行递归children()检查时遇到了麻烦...这是我能做的最好的(非递归的):

$(".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'));
                        });
                    }
                });
            }
        });
    }
});

它只是alert()是所有东西的id,处于它们应该在的级别。必须有更好的方法来做到这一点......提前感谢您的任何建议。 -贾斯汀

I'm new to jQuery, familiar with PHP & CSS. I have nested, dynamically generated div's which I wish to send (the id's) to a server-side script to update numbers for. I want to check everything in the .content class. Only div's with id's should be sent for processing; however I'm having trouble making a recursive children() check...this is the best (non-recursively) I could do:

$(".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'));
                        });
                    }
                });
            }
        });
    }
});

and it just alert()'s the id's of everything at the level where they should be. There must be a better way to do this...thank you in advance for any advice.
-Justin

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

像你 2024-10-14 10:16:36

尝试:

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/

Try:

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

.content div[id] will select you all div descendants (at any level) of .content with non-empty ID attributes. The [id] part is an example of the Has Attribute selector.

I have used .map. to extract the IDs of the matches, and .get() to convert the resulting object into a basic array.

Try it here: http://jsfiddle.net/M96yK/

强者自强 2024-10-14 10:16:36

你可以这样做:

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

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

You can do:

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

This will return a jQuery object that contains all div's which have id's specified

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文