1

削除ボタンをクリックすると、jquery で art-no の値を取得するにはどうすればよいですか?

<form id="artForm" method="post">
<input type="hidden" name="sequence" value="27" art-no="27">
<input type="button" value="Delete" class="delete" id="submitbutton">
</form>

このようにjQueryを使用する場合:

$(".delete").click(function() {
alert (".sequence").attr("art-no");
return false;
});

これは実際には機能するはずですが、アラート ボックスに .sequence が表示され続けます。隠してるからじゃない?

4

2 に答える 2

4

まず第一に、これは実用的なソリューションです:

$(".delete").click(function() {
    alert ($("[name='sequence']").attr("art-no"));
    return false;
});

いくつかアドバイスがあります。

  • .sequenceその隠しフィールドにはクラス名がないため、セレクターには使用できません。使用する[name='sequence']か、sequenceクラスを指定して使用する必要があります.sequence
  • 独自のプロパティを作成する代わりに、dataプロパティと.data()を使用して、同様に使用し、次のようdata-art-no="27"にアクセスできます.data('art-no')
  • 最後に、event.preventDefault()insted of を使用しreturn falseます。

修正したコードは次のとおりです。

$(".delete").click(function(e) {
    e.preventDefault();
    alert ($("[name='sequence']").data("art-no"));
});
于 2012-12-05T07:49:29.877 に答える
3

名前だけになった入力を追加class="sequence"してから置き換えます

alert (".sequence").attr("art-no");

alert ($(".sequence").attr("art-no"));

またはそれ以上

alert ($(this).prev(".sequence").attr("art-no"));

sequenceクラスを複数回使用する場合に正しい要素があることを確認するため(これが通常、ID ではなくクラスを使用する理由です)。

クラスまたは ID を追加したくない場合、セレクターは次のようになりますinput[name=sequence]

alert ($("input[name=sequence]").attr("art-no"));
于 2012-12-05T07:46:34.837 に答える