JQuery: как добавить $ (это) - PullRequest
6 голосов
/ 22 ноября 2010

У меня есть метод jQuery, к которому я хочу добавить элемент $ (this).

Мой код

$("#actions ul" ).append($(this)); 

Однако, похоже, это что-то делает. Используя линию

.append($(this).html()) 

работает, но захватывает только дочерний элемент $ (this) (div), а не весь элемент (li).

Я, вероятно, делаю что-то идиотское, надеюсь, кто-то может указать мне на это.

Ответы [ 4 ]

7 голосов
/ 22 ноября 2010

Не зная точно, что означает this, единственная причина, по которой я могу придумать, чтобы $(this).html() работала, а не $(this), заключается в том, что первый метод создает новый элемент из HTML-кода, тогда как добавление $(this) будет переместить элемент.

Посмотрите, исправит ли ваша проблема следующее:

$("#actions ul" ).append($(this).clone()); 
0 голосов
/ 01 января 2015

На самом деле вы хотите использовать appendTo, это захватит весь элемент.

$(this).appendTo("#actions ul");
0 голосов
/ 22 ноября 2010

Звучит так, как будто this установлен в селектор, который находит <div> вместо <li>. Вы можете либо изменить селектор, либо, как предлагает miket2e, использовать вместо него .parent(). Примечание: вам также не нужно использовать .html(), поскольку функция .append может принимать строку HTML или объект jQuery.

Если вы опубликуете значение this, мы могли бы дать более конкретный ответ.

0 голосов
/ 22 ноября 2010

Не совсем понятно, что означает $(this), но если это дочерний элемент элемента, который вы хотите, то $(this).parent() должен получить родительский элемент, за которым вы следите.

...