0

同じ「ID」でクリックするボタンが複数ある場合に、カスタム HTML 属性から情報を取得する簡単な方法を作成しようとしています。

押した特定のボタンから「url」属性値を渡すことができるかどうか知りたいです。今のところ、それは常に最初のものをつかむだけです...

コード:

<script>
$(document).ready(function() { 
    $(":input[id='alarm']").click(function() {
        alert($("input[url]").attr("url"));
    });
});
</script>

<table id='alarms'>
    <th>ID</th>
    <th>CaseID</th>
    <th>Alarm</th>

    <tr>
        <td width="50">2040</td>
        <td width="180">TEST-111110-123-R4</td>
        <td><input id="alarm" type="button" value="Cancel" url="../silencealarm.php?id=2040"></td>
    </tr>
        <td width="50">2042</td>
        <td width="180">TEST-111110-123-R6</td>
        <td><input id="alarm" type="button" value="Cancel" url="../silencealarm.php?id=2042"></td>
    </tr>
</table>
4

3 に答える 3

2

カスタム HTML 属性プレフィックスをdata-*ハンドラー内およびハンドラー内で使用している間、これは要素自体を参照するため、次のようにアクセスするだけです$(this).data("url")

 $(":input[id='alarm']").click(function() {
        alert($(this).data("url"));
    });

重複する ID を使用しないでください。HTML が無効になり、ハンドラーが最初のインスタンスにのみアタッチされるため、代わりにクラスに変更します。

マークアップ

<tr>
        <td width="50">2040</td>
        <td width="180">TEST-111110-123-R4</td>
        <td><input class="alarm" type="button" value="Cancel" data-url="../silencealarm.php?id=2040"></td>
    </tr>
        <td width="50">2042</td>
        <td width="180">TEST-111110-123-R6</td>
        <td><input class="alarm" type="button" value="Cancel" data-url="../silencealarm.php?id=2042"></td>
    </tr>

脚本

$(":input.alarm").click(function() {
        alert($(this).data("url"));
});

デモ

于 2013-06-14T16:29:44.867 に答える
2

使用するthis(ただし、重複する ID は使用しないでください)

$(document).ready(function() { 
    $(":input[id='alarm']").click(function() {
        alert($(this).attr("url"));
    });
});
于 2013-06-14T16:29:17.780 に答える
0

コードを次のように変更するだけです。

$(document).ready(function() { 
    $(":input[id='alarm']").click(function() {
        alert($(this).attr("url")); //or
        alert($(this).prop("url"));
    });
});
于 2013-06-14T16:30:06.527 に答える