Подтвердить что ты не робот

Как использовать jQuery для получения идентификатора div, на который был нажат?

Мне нужно получить идентификатор отложенного div.

Теперь, когда я нажимаю на класс статуса I, возвращается undefined 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?

4b9b3361

Ответ 1

Я не уверен, почему вы используете $.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));

Ответ 2

Как насчет:

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

Должно ли это работать только для div с классом status? Если да, попробуйте:

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

Ответ 3

используйте 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/

Ответ 4

$('selector').each(function(){
    $(this).click(function(){
        alert($(this).attr('id'))
    });
});

Ответ 5

Объяснение проблемы PROXY:

Будьте осторожны, используя $.proxy(). Он вызывает функцию (здесь параметр 1), используя указанный контекст (здесь параметр 2) вместо использования контекста, в котором запускается событие.

В главном вопросе указанным контекстом является $(document). Таким образом, функция пытается получить идентификатор документа вместо идентификатора объекта, на котором запускается событие (элемент $('. Status')).

Ответ 6

Я пытаюсь отобразить скрытый 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++;
        }       
        }

Ответ 7

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $(".divField").click(function(){
        alert("id : " + $(this).attr("id"));
    });

});
</script>
</head>
<body>
<h1>For finding id click below text</h1>
<div id="id1" value="Example 1" class="divField">My id is <b>id1</b></div>
<div id="id2" value="Example 2" class="divField">My id is <b>id2</b></div>

</body>
</html>