0

私は正規表現に非常に慣れていないので、特殊文字が含まれているため、これらの文字列を適切に選択/置換することができませんでした。

次のようなフォーム要素を指定します。

<select id="referralForm_currentReferredProducts_1__soldProductId" class="autoWidth soldProductSelect" name="currentReferredProducts[1].soldProductId">

id属性とname属性を選択してインクリメントするにはどうすればよいですか?フォーム要素はHTMLスニペットとしてフォームに追加されており、DOMにアタッチされるまでそれらを実装することはできません。

ありがとう!

更新:regexpalを 使用してさまざまな式をテストしようとしましたが、これはアンダースコアを正しく選択します。 \_[0-9]+\_

それは実際には何も置き換えていないだけです..ここに私のコードがあります:

$.each($('#add-a-product-wrapper').children().last().find('[id*="__"]'), function(){
    $(this).attr('id').replace(/\_[0-9]+\_/, '_'+ replaceIndex +'_');
});
4

2 に答える 2

1

私はそれを理解することができました。

$.each($('#add-a-product-wrapper').children().last().find('[id*="__"]'), function(){
    var newVal = $(this).attr('id').replace(/\_[0-9]+\_/g, '_'+ replaceIndex +'_');
    $(this).attr('id', newVal);
});

私が気付いていなかったのは、replace()が何かを直接設定するのではなく、値を返すことです。値が返されると、フォーム要素の新しいIDとして設定できます。

于 2012-11-28T18:05:33.337 に答える
0

これを試して:

$('select').attr('id','new_id').attr('name','new_name');
于 2012-11-28T16:45:23.383 に答える