15

クリックされた div の ID を取得する必要があります。

ステータス クラスをクリックすると、未定義の ID が返されました。

ここに私のJavaScriptコードがあります

jQuery(document).ready(function() {
    $(".status").bind('click', $.proxy(function() {
        var status = $(this).attr('id');
        alert(status);
    }, this));
});​

と HTML

<div class="status" id="s_1">111111</div>
<div class="status" id="s_3">33333</div>
<div class="status" id="s_2">222222</div>

正しい id 値を取得するにはどうすればよいですか?

4

7 に答える 7

26

$.proxy を使用している理由がわかりません。それを削除すると、望ましい結果が得られるはずです。

$('.status').click(function(event) {
    var status = $(this).attr('id');
});

それでもプロキシを使用したい場合は、クリックした要素にアクセスできますevent.currentTarget

$(".status").bind('click', $.proxy(function(event) {
    var status = $(event.currentTarget).attr('id');
    alert(status);
}, this));
于 2012-06-28T16:26:04.547 に答える
5

どうですか:

$('div').on('click', function(){
    alert($(this).attr("id"));
});

これは class を持つ div に対してのみ機能する必要がありstatusますか? その場合は、次を試してください。

$('div.status').on('click', function(){
    alert($(this).attr("id"));
});
于 2012-06-28T16:27:15.627 に答える
2

event.target を使用してその要素を参照します

jQuery(document).ready(function() {
        $(".status").bind('click', $.proxy(function(event) {
            var status = $(event.target).attr('id');
          alert(status);
    }, this));
});

実際に見てください:http://jsfiddle.net/vNaqR/

于 2012-06-28T16:31:44.890 に答える
0
$('selector').each(function(){
    $(this).click(function(){
        alert($(this).attr('id'))
    });
});
于 2013-06-06T07:23:18.157 に答える
0

ボタンをクリックしたときに非表示の div を表示しようとしています。ユーザーがボタンをクリックするたびに、より多くのインデックスが表示されます。

編集ではなく追加モードの場合、リストは常に空であるため、機能しません(編集時にdivを表示します)

                       <li>
                        <button type="button" name="addAnotherButton" class="btnFwd gradient smButtonStyling" 
                        onClick="showInput();">
                            <img src="/Common/web/static/images/add.png" class="smbtnIcon" />
                            Add Another 
                    </button>
                </li>

                <li>
                           <c:forEach items="${planInfoList}" var="planInfo" varStatus="status">
                        <div id="uploadBody[${status.index}]" style='display = none'>
                            <label class="adminFormLabel">Title:</label>
                            <form:input path="planInfoList[${status.index}].title" onfocus="this.select();" maxlength="50" size="30"/>
                            <label class="adminFormLabel">Plan Number:</label>
                            <form:input path="planInfoList[${status.index}].planNumber" size="10" maxlength="10"/>
                        </div>
                    </c:forEach>
                </li>

JS:

var found = 0;
    if ($('#uploadBody' + i).hide()) {
        for (var i = 0; i < 5; i++) {
            if (found == 0) {
                $('#uploadBody' + i).show();
            }
            found++;
        }       
        }
于 2017-03-24T16:00:22.293 に答える