选择所有级别的所有儿童

时间:2012-05-16 13:12:26

标签: javascript jquery

我有一个脚本如下:

$('.Addable').find('input').each(function () {
            if ($(this).attr('name')) {
                var Name = $(this).attr('name');
                var Number = Name;
                if (Name.substring(Name.length - 1) == ']') {
                    var Fi = Name.lastIndexOf("[") + 1;
                    var Li = Name.lastIndexOf("]");
                    if (Fi > -1) {
                        Number = Name.substring(Fi, Li);
                        if (Number > Indx) {
                            Number = Number - 1;
                            $(this).attr('name', Name.substring(0, Fi) + Number + ']');
                        }
                    }
                }
            }
        });

所以更改input的名称是完美的,现在我需要更改所有元素input s像select s我认为替换第一行:

$('.Addable').children().each(function () {

但那不起作用,那么你选择所有子元素的建议是什么?

2 个答案:

答案 0 :(得分:5)

对于所有后代元素,你可以做@gdoron建议的内容。如果您要查找所有表单字段,而不仅仅是input,那么您可以使用:input选择器,该选择器也匹配selecttextarea等:

$('.Addable').find(':input').each(function() { ... });

答案 1 :(得分:2)

  

那么您选择所有子元素的建议是什么?

选项:

$('.Addable *').each(function () {
$('.Addable').find('*').each(function () {

jQuery('*') docs

  

描述:选择所有元素   警告:全选或通用选择器非常慢,除非单独使用。