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)の要素を取得するためにコンテキストを選択します。jQuery

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

また、次のようにしてコードを減らすことができます。

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

これにより、クリックハンドラーがページ内のすべてのボタンにアタッチされます(それぞれと同じgetElementsByTagNameで、ループします)。

于 2013-01-30T12:17:34.077 に答える
1

単に使用して$(this)ください:

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

jQueryとJavaScriptを組み合わせることで、これをやや複雑にしていることに注意してください。簡単に、次のアプローチを使用できます。

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