Получить значение Alt из щелкнутого элемента и исчезающего элемента div с именем alt value

#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'));