1

私は次のようなスクリプトを持っています:

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

sの名前をinput完全に変更するために、ナットは、inputsのようなものだけでなくすべての要素を変更する必要がありselectます。最初の行を次のように置き換えます。

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

しかし、それはうまくいきませんでした。それで、すべての子要素を選択するためのあなたの提案は何ですか?

4

2 に答える 2

5

For ALL descendent elements, you can do what @gdoron suggested. If you're looking for all form fields in general, not just input's, you can use the :input selector, which will also match select, textarea, etc.:

$('.Addable').find(':input').each(function() { ... });
于 2012-05-16T13:15:20.940 に答える
2

では、すべての子要素を選択するためのあなたの提案は何ですか?

オプション:

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

jQuery('*') ドキュメント

説明:すべての要素を選択します。
注意:すべて、またはユニバーサルのセレクターは、単独で使用する場合を除いて、非常に低速です。

于 2012-05-16T13:13:44.200 に答える