編集:これは機能しますが、理由はわかりません
$('button').each(function() {
$(this).bind(
"click",
function() {
alert($(this).val());
});
});
なぜこれが機能しないのかわかりません...現在、ボタンの値でアラートを出力しようとしているだけですが、ページで機能していません。 Firebugでコンソールエラーが発生せず、Firebugの動作を妨げるようなエラーが表示されません。
私のHTMLは次のようになります。
<table id="addressbooktable">
<thead>
<tr>
<th>Name</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<tr>
<td>7892870</td>
<td><button id="button-20" class="custom-action" value="XY89" name="info">Click</button></td>
</tr>
<tr>
<td>9382098</td>
<td><button id="button-21" class="custom-action" value="XY544" name="info">Click</button></td>
</tr>
<tr>
<td>3493900</td>
<td><button id="button-22" class="custom-action" value="XY231" name="info">Click</button></td>
</tr>
</tbody>
</table>
そして、コードは次のようになります。
$('button').each(function() {
$(this).click(function() {
alert($(this).val());
}
});
しかし、それをクリックしても何も起こりませんか?間違って使用していますか?
このようなクリックイベントですべてのボタンをバインドできます。ボタンをループする必要はありません。
$(function(){
$("button").click(function() {
alert($(this).attr("value"));
});
});
しかし、より正確なセレクターは次のとおりです。
$(function(){
$("button[id^='button-'").click(function() {
alert($(this).attr("value"));
});
});
_);
_がないため、次のようにコードが_document.ready
_ハンドラーにあることを確認してください:
_$(function() {
$('button').each(function() {
$(this).click(function() {
alert($(this).val());
}); //missing ); here!
});
});
_
このように、それらの_<button>
_要素がDOMに存在して$('button')
がそれらを見つけるまで実行されません。また、次のように、要素のセットに対して .click()
を実行できます。
_$(function() {
$('button').click(function() {
alert($(this).val());
});
});
_
不足しています)
:
$('button').each(function(){
$(this).click(function(){
alert($(this).val());
});
});
うん。これを試して:
_$('button').click(function() {
alert($(this).val());
});
_
また、そこに_return false
_または.preventDefault()
が必要な場合もあります。
ボタンには.val()
メソッドを使用できません。 .attr()
を使用して値属性を取得できます。カスタム属性を使用している場合は、 data-attribute を使用します。
試す
$("button").click(function(){
alert($(this).attr("value"));
});