2010-11-22 1 views
6

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

Мой код

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

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

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

делает работу, но она захватывает только ребенок $ (это) (а дела) не весь элемент (An Li).

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

+0

Добро пожаловать в Stack Overflow !! Нам нужно увидеть больше кода. Откуда стоит $ (это)? событие щелчка, мышь? Где? –

ответ

7

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

Смотрите, если ниже исправляет проблему:

$("#actions ul").append($(this).clone()); 
+0

Спасибо, да, это была функция .clone(), которую я отсутствовал –

0

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

+0

append() принимает объект string, element или jQuery, поэтому .append ($ (this) .parent()) достаточно. Кроме того, добавление объекта jQuery будет перемещать элемент, а не клонировать его в случае $ (this) .parent(). Html(). –

+0

@ box9 - Спасибо за исправление, я не понял, что о append(). Я удалил эту часть из своего ответа, чтобы сохранить ее в точности. – mikel

0

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

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

0

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^