0

我正在尝试自动绑定按钮。我需要在问号处填写什么才能获得特定于按钮 1 和 2 的警报?

在 HTML 头部

jQuery(document).ready(function()
{
    var myButton = document.getElementsByTagName("button");

    for (var i = 0; i < myButton.length; i++)
    {
        jQuery("#" + myButton[i].id).bind("click", function()
        {                
            alert(jQuery( --???-- ).data("text"));
        });
    }
});

在 HTML 正文中

<button type = "button" id = "btn1">btn1</button>
<script type="text/javascript">
    jQuery("#btn1").data("text", "Howdy");
</script>

<button type = "button" id = "btn2">btn2</button>
<script type="text/javascript">
    jQuery("#btn2").data("text", "Poo");
</script>
4

2 回答 2

1

只需使用$(this)

alert(jQuery(this).data("text"));

请记住,您通过混合使用 jQuery 和 JavaScript 使这有点复杂化。您可以轻松地使用以下方法:

jQuery('button').click(function(){
    alert(jQuery(this).data('text');
});
于 2013-01-30T12:18:51.127 回答
1

以这种方式附加的事件处理程序的上下文是事件处理程序附加到的元素,因此基本上您选择上下文$(this)来获取jQuery按钮的元素。

alert(jQuery(this).data("text"));

您还可以通过以下方式减少代码:

$(document).ready(function () {
    $('button').click(function (event) {
         alert($(this).data('text'));
    }
});

这会将点击处理程序附加到页面中的所有按钮(与每个按钮相同getElementsByTagName然后循环)。

于 2013-01-30T12:17:34.077 回答