2010-11-22 48 views
6

我有一个jQuery方法,我想追加元素$(this)。

我的代码是

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

然而,这似乎做任何事情。使用线

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

的工作,但它只是抓起$(本)(一个div),而不是整个元素(一个LI)的孩子。

我可能在做一些虚无的事情,希望有人能指出这一点给我。

+0

欢迎来到Stack Overflow!我们需要看到更多的代码。 $(this)从哪里来?点击事件,鼠标悬停?哪里? – 2010-11-22 03:29:27

回答

7

不知道到底是什么this指的是,我能想到的$(this).html()工作,而不是$(this)的唯一原因是,前者方法创建从HTML代码,而附加$(this)将移动元素的新元素。

看看下面的解决您的问题:

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

谢谢你是我错过的.clone()函数 – 2010-11-22 23:30:29

0

这并不清楚$(this)指的是什么,但是如果它是您想要的元素的子元素,那么$(this).parent()应该获得您之后的父元素。

+0

append()接受字符串,元素或jQuery对象,所以.append($(this).parent())就足够了。另外,附加一个jQuery对象将移动元素,而不是在$(this).parent()。html()的情况下克隆它。 – 2010-11-22 04:19:38

+0

@ box9 - 感谢您的纠正,我没有意识到这个附加()。我已经从我的答案中删除了该部分,然后保持准确。 – mikel 2010-11-22 04:25:10

0

听起来像this被设置为选择器,该选择器找到<div>而不是<li>。您可以更改选择器,或者像miket2e建议的那样,改用.parent()。注意:您不应该使用.html(),因为the .append function可以采用HTML字符串作为jQuery对象。

如果您发布的价值为this,我们可以提供更具体的答案。

0

其实你要使用appendTo,这将抓住整个元素。

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