JQuery получить идентификатор ссылки динамического идентификатора - PullRequest
3 голосов
/ 16 августа 2011

Я новичок в jquery и смотрю весь день, но не могу решить, что это за очень простая идея:)

Вот тестовый код:

js:

$(document).ready(function(){
    $('#transgenic_div').click(function(){
        var selected_transgenic_id = $(this).attr("id");
        alert(selected_transgenic_id);          
    });

});

html:

<div id="transgenic_div">
<p><a class="transgenic_button" id="56">item number 56</a></p>
<p><a class="transgenic_button" id="57">item number 57</a></p> etc
</div>

Это просто выдает предупреждение "tansgenic_div" Я пытаюсь передать выбранный идентификатор другой функции - но сейчас просто тестирую с предупреждением ...

Ответы [ 2 ]

2 голосов
/ 16 августа 2011

Попробуйте получить идентификатор из элемента target / source события click:

$('#transgenic_div').click(function(e){
    var selected_transgenic_id = $(e.target).attr("id"); // or e.target.id
    alert(selected_transgenic_id);          
});

Кроме того, идентификаторы не должны начинаться с цифр в HTML4 , я бы предложил применить префикс.

Если вы хотите сопоставить только якоря, используя эту технику, вы можете сделать это следующим образом:

$('#transgenic_div').click(function(e){
    var t = e.target;
    if(t.tagName.toLowerCase() === "a") {
        var selected_transgenic_id = $(t).attr("id"); // or t.id
        alert(selected_transgenic_id);   
    }       
});
1 голос
/ 16 августа 2011

Если я понял ваш вопрос, вы не хотите соответствовать основному <div>, но внутренним ссылкам:

$(document).ready(function(){
    $('#transgenic_div p a').click(function(){
        var selected_transgenic_id = $(this).attr("id");
        // Or simply: this.id
        alert(selected_transgenic_id);          
    });
});

(Кстати, действительные идентификаторы не могут начинаться с цифры, если вы не используете HTML 5.)

Полный рабочий пример:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript"><!--
$(document).ready(function(){
    $('#transgenic_div p a').click(function(){
        alert(this.id);
    });
});//--></script>
</head>
<body>

<div id="transgenic_div">
<p><a class="transgenic_button" id="56">item number 56</a></p>
<p><a class="transgenic_button" id="57">item number 57</a></p> etc
</div>

</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...