【发布时间】:2011-06-26 09:59:08
【问题描述】:
我有这个:
if($('.content', wrapper).length === 0)
$(data[current].content).appendTo(wrapper);
else
$('.content', wrapper).replaceWith($(data[current].content));
var el = $('.content', wrapper);
这是有效的,但是这段代码应该做同样的事情:
var el = ($('.content', wrapper).length === 0)
? $(data[current].content).appendTo(wrapper)
: $('.content', wrapper).replaceWith($(data[current].content));
搞砸了我的 CSS。
el 似乎在这两种情况下都是一样的,但由于某些奇怪的原因,我在此之后的动画出错了,很可能是因为一些 CSS 更改...
我做错了什么?
【问题讨论】:
-
是 .replaceWith 你想要的吗?我相信这将返回旧内容,而不是新替换的内容。
-
我想要
$('.content', wrapper)(被替换的元素)。就我而言,这不是 replaceWith 返回的吗? -
我认为它会返回被替换的内容(并且不再在 DOM 中)。来自 jQuery 文档:“必须注意返回的是原始 jQuery 对象。这个对象是指已从 DOM 中删除的元素,而不是替换它的新元素。”
-
你是对的。我找到了
replaceAllapi.jquery.com/replaceAll,它有效,并且似乎返回了新内容。谢谢,您应该发布您的 cmets 作为答案:D
标签: jquery html css jquery-selectors