JQuery - fadeIn, используя переменную вместо id? - PullRequest
0 голосов
/ 18 января 2012

Этот код работает:

$(contentDiv).fadeIn("slow");

Это не:

var elementName = 'contentDiv';
$(elementName).fadeIn("slow");

Эффект затухания не появляется.

Я собираюсь почувствовать себя идиотом сэто решение я знаю, но не могу его решить.

Ответы [ 6 ]

2 голосов
/ 18 января 2012

Необходимо указать, является ли 'contentDiv' классом или id

var elementName = '.contentDiv';
$(elementName).fadeIn("slow");

OR

var elementName = '#contentDiv';
$(elementName).fadeIn("slow");
1 голос
/ 18 января 2012

Этот код работает:

$ (contentDiv) .fadeIn ("медленно");

Он не должен работать, если вы не используете Internet Explorer.IE имеет неприятную привычку создавать переменные для элементов HTML, которые имеют идентификатор.(РЕДАКТИРОВАТЬ: хром, кажется, делает это тоже.)

Способ подключения:

var elementName = "contentDiv";
$("#" + elementName).fadeIn("slow");
1 голос
/ 18 января 2012
var elementName = '#contentDiv';
$(elementName).fadeIn("slow");

# является причиной.

1 голос
/ 18 января 2012

contentDiv не является тегом / элементом. Вы забыли указать id или class для вашего селектора:

var elementName = '#contentDiv';

Или

var elementName = '.contentDiv';

в зависимости от того, используете ли вы class или id для своих div (ов).

1 голос
/ 18 января 2012

Вам необходимо добавить в строку остальную часть селектора. Если contentDiv является id, это будет #:

$("#" + elementName").fadeIn("slow");

Если на самом деле это значение атрибута name, вам необходимо вставить его в селектор атрибута :

$("[name='" + elementName + "']").fadeIn("slow");

Если contentDiv - это что-то другое (возможно, класс), вам необходимо соответствующим образом изменить селектор. Раздел о селекторах в документах jQuery будет хорошим началом.

То, что у вас есть, будет искать элемент типа «contentDiv», а это не то, что вам нужно:

<contentDiv>This is an invalid element...</contentDiv>
1 голос
/ 18 января 2012

Если "contentDiv" является name вашего элемента, то вам нужно использовать:

$("[name=" + elementName + "]").fadeIn("slow");

Если это id, тогда вам нужно использовать:

$("#" + elementName).fadeIn("slow");
...