编辑:这有效,但不确定原因?
$('button').each(function() {
$(this).bind(
"click",
function() {
alert($(this).val());
});
});
我不确定为什么这不起作用...现在,我只是想用按钮值输出一个警报,但它不能在我的页面上工作。我没有在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());
}
});
但是,点击它什么都不做?我使用不正确吗?
答案 0 :(得分:20)
你可以用这样的点击事件绑定所有按钮,不需要循环它们
$(function(){
$("button").click(function() {
alert($(this).attr("value"));
});
});
但更精确的选择器可能是:
$(function(){
$("button[id^='button-'").click(function() {
alert($(this).attr("value"));
});
});
答案 1 :(得分:7)
您错过了);
,并确保您的代码位于document.ready
处理程序中,如下所示:
$(function() {
$('button').each(function() {
$(this).click(function() {
alert($(this).val());
}); //missing ); here!
});
});
这样,只有<button>
元素在$('button')
的DOM中才能找到它们,它才会运行。此外,您可以对一组元素运行.click()
,如下所示:
$(function() {
$('button').click(function() {
alert($(this).val());
});
});
答案 2 :(得分:1)
您遗失)
:
$('button').each(function(){
$(this).click(function(){
alert($(this).val());
});
});
答案 3 :(得分:0)
烨。试试这个:
$('button').click(function() {
alert($(this).val());
});
您可能还需要return false
或.preventDefault()
。
答案 4 :(得分:0)
您无法使用.val()
方法获取按钮。您可以使用.attr()
获取value属性。如果您使用自定义属性,请使用data-attribute。
尝试
$("button").click(function(){
alert($(this).attr("value"));
});