0

私は Jquery の初心者で、修正方法がわからない小さな問題があります。私は JSFiddle でデバッグしようとしましたが、成功しなかったので、ここで私の問題:

最初の div にはいくつかのテキスト ボックスがあり、2 番目の div にはボタンがあります。ボタンをクリックすると、最初の div の特定のテキスト ボックスが空になります。

さて、全体像は、テキストボックスの名前を事前に知らないということです(リストは取得され、ASP.NET MVCは入力フィールドに自動的に名前を付けます)ので、私が知っている唯一のことは、最初のテキストボックスを空にしたいということです。 name プロパティ値は "input1" で終了します (最初は自動生成されます)。また、関心のあるテキストボックスがボタンの直前にあるものであることも知っています。私がはっきりしていたことを願っています。

これが動作していない私のフィドルです: http://jsfiddle.net/XvTNh/1/

助けていただければ幸いです!

HTML:

<div class="myClass1">
<input name="fdsgginput1" type="text" value="Salé sucré"/>
<input name="gfsginput2" type="text" value="Macarons"/>
</div>

<div class="myClass2fdsff">
<input type="submit" name="envoyer" />

JS:

$("div[class^='myClass2']").on('click','input[name="envoyer"]',function(){
$(this).closest('input[name$="input1"]').val('');
});
4

3 に答える 3

1

あなたは基本的にDOMをナビゲートしようとしています。closestHTML 内で近くにある可能性のある他の要素を探しに行くことはありません。むしろ、DOM ツリーを上って祖先要素を調べ、渡されたセレクターに一致する要素があるかどうかを調べます。

必要な要素は祖先要素ではないため、見つかりません。実際には、共通の祖先要素を追加する必要があります (実際には、HTML には既に含まれている可能性があります)。次に、要素を組み合わせclosestfind検索します。

$("div[class^='myClass2']").on('click', 'input[name="envoyer"]', function () {
    $(this).closest('.container').find('input[name$="input1"]').val('');
});

フィドル

于 2013-11-04T13:28:33.990 に答える
0

これを試して

$("body").find('input[name$="input1"]').first().val('');
于 2013-11-04T13:32:12.663 に答える
0

これを試して:

<script>
$(document).ready(function(){
    $('.myClass2fdsff input[type=submit]').click(function(){
         $('.myClass1 input:first').val(''); // Empty first textbox
         $('.myClass1 input[name*=input1]').val(''); //Empty input with input1 in name
    });
});
</script>
于 2013-11-04T13:33:03.617 に答える