#jquery
#jquery
Вопрос:
Я пытаюсь получить идентификатор div из нажатого значения img alt и исчезнуть в этом div. Я здесь, потому что я не мастер jQuery, но пытаюсь учиться. Вот мой код:
$('#div1').bind('click',function(){
var $this = $(this);
var $divid = $this.attr("alt");
$divid.fadeIn(3000);
});
пример div;
<div id="div1" alt="div2"></div>
<div id="div2" style="display:none"></div>
Комментарии:
1. Ни в одном ответе это не упоминается, поэтому я скажу:
alt
атрибут НЕ предназначен для использования таким образом, и вы не должны использовать его наdiv
, потому что это недопустимый HTML. Вместо этого рассмотримdata-
атрибуты.
Ответ №1:
зачем все переменные?
$("#" $(this).attr("alt")).fadeIn(3000);
должно выполняться
Комментарии:
1. Переменные делают код более понятным и удобным для чтения. Комбинирование кода, подобное тому, что вы делаете all inline, часто приводит к тому, что код становится гораздо менее читаемым для других разработчиков, которые пересматривают ваш код, или даже для вас, пересматривающих ваш код месяцы спустя
2. если это сложнее, я с вами, но я думаю, что в данном случае это просто отлично
3. Я бы не согласился, поскольку вам нелегко узнать, что «alt» attr содержит идентификатор div без этих объявлений var.
4. да, но это не очень приятное и прозрачное решение с переменным или без него
5. Конечно, это могло бы быть лучше, но это не является допустимым аргументом для ухудшения ситуации путем удаления переменных
Ответ №2:
Демонстрация — http://jsfiddle.net/M3p4U
Вам нужно использовать строку alt для формирования идентификатора для селектора jQuery.
$('#div1').click(function(){
var divid = $(this).attr("alt");
$('#' divid).fadeIn(3000);
});
Ответ №3:
Вам нужно создать объект jquery на основе этого идентификатора.
$("#" $divid).fadeIn(3000);
Ответ №4:
Измените третью строку на var $divid = $('#' $this.attr('alt'));