У меня есть следующий HTML структуру:Создание элемента ID «на лету» не работает в JQuery
<div class='message_top' id='top_7' style='cursor:pointer;'>
<div class='top_ime'>From: official</div>
<div class='top_status' id='status_7'>
<img src='images/message_new.png' height='26' title='New message' />
</div>
</div>
В дополнение к этому, есть много других DIVs той же структуры, но с различными идентификационными номерами, например:
<div class='message_top' id='top_15' style='cursor:pointer;'>
<div class='top_ime'>From: official</div>
<div class='top_status' id='status_15'>
<img src='images/message_new.png' height='26' title='New message' />
</div>
</div>
Теперь, у меня есть функция JQuery, которая принимает идентификатор .message_top
DIV и он должен выполнить действие, используя содержимое .top_status
DIV, который принадлежит к нему. Однако по какой-то причине в синтаксисе он, похоже, не распознает идентификатор div .top_status
. Я знаю, что я Nto объяснить это очень хорошо, но вот скрипка, которая поможет вашему понять (код и комментарии есть):
$(function() {
$('.message_top').click(function(){
var id = this.id;
status_id = id.replace("top","status");
status = $("#"+status_id).html();
alert(status_id+" "+status); //status variable is empty, but...
status2 = $("#status_7").html();
alert(status2); //status2 has the expected value
});
});
Итак, как вы видите, если я называю .html()
метод, используя $("#status_7").html();
, он отлично работает, но если я назову его $("#"+status_id).html();
(статус status_id «status_7»), он не работает. Что тут происходит? Я использовал подобный код несколько раз и никогда не имел никаких проблем.
, кажется, работает хорошо, если вы загружаете ваш код в нужное место (подсказка: на док готовы или нагрузки). http://jsfiddle.net/j08691/gMy2f/4/ – j08691
@ j08691 Я только что пробовал свой код, и он терпит неудачу так же, как у меня (как минимум, в Firefox) - и я уверен, что мой способ загрузки хорошо. – jovan
Код работает отлично в firefox 19.0.2, Может быть, проблема совместимости с браузером? – gbtimmon