是否存在类似于replaceWith()
的jQuery函数,用新元素替换元素,而不破坏原始元素(只是隐藏它)。
答案 0 :(得分:1)
结合使用hide
[API Ref] 和after
[{{3} }] :
$('#oldElem').hide().after($('#newElem'));
答案 1 :(得分:1)
这样的事情怎么样?
$(this).before("this is what I'm inserting").hide();
答案 2 :(得分:1)
你可以这样做:
<button>replace</button>
<div class="toReplace">your first content</div >
<div class="toReplace" style="display: none">your second content</div >
然后在js:
$("button").click(function () {
$("toReplace").toggle();
});
答案 3 :(得分:1)
切换可见性在某些情况下可能有效,但首选方法是克隆原始元素。例如:
var clone = $('#elementOne');
$('#elementToBeReplaced').replaceWith(clone);
这在管理表单输入时特别有用,因为DOM不关心元素是否可见。
答案 4 :(得分:0)
只需在元素之后或之前插入元素,然后隐藏元素本身。试试这个
$("element").hide().after($("newElement"));
答案 5 :(得分:0)
如果你想用css隐藏它,只需在.hide()
之前调用.after()
,如:
$('#theolddiv').hide().after('$(<div>The new div</div>'));
如果你想从DOM中完全删除它,不只是用css隐藏它,而是希望以后能够重新插入它,甚至可能在DOM中的其他地方,然后将它存储在一个变量中: / p>
var $x = $('#theolddiv');
$x.replaceWith('<div>The new div</div>');
// Do stuff here, you can put $x back in the DOM if you want.
这实际上是对象的副本,但它足够好了:))