1
我正在尝试通过jquery移动而不是将html div元素复制到页面上的其他位置。jQuery .append仅移动目标div的内部元素
我目前正在与.append
$('#append-options').append($('#wsite-com-product-options').html());
此代码,欺骗功能要做到这一点,是给我意想不到的结果。第一个问题是,它只是在#wsite-com-product-price-area div内移动子内容,而不是div本身。第二个是,这不是简单地移动元素,而是复制它们,导致移动的元素在页面上出现两次。
可能很明显,我用jquery很绿。我知道还有其他的方式来移动jQuery中的元素,但我不确定哪个是合适的。以下是我在我的页面上使用的完整脚本,其中还包含其他一些内容。
<script type="text/javascript">
(function($) {
$(function() {
$('#append-options').append($('#wsite-com-product-options').html());
$('#insert-after-here').prepend($('#wsite-com-product-price-sale').html());
$('#insert-after-here').prepend($('#wsite-com-product-price-area').html());
var $btn = $('#wsite-com-product-buy');
$('.wsite-product-description').first().append('<div id="something-cool"/>');
$btn.appendTo('#something-cool').css('top', 0);
});
})(jQuery);
</script>
优秀,这真是棒极了@ T.J。克劳德。只是好奇,.html()实际上做了什么,我应该从脚本的其他元素中删除它吗? –
@AlexRitter:['.html()'](http://api.jquery.com/html)有效地检索您调用的jQuery集合中第一个元素的innerHTML属性。访问'innerHTML'会要求浏览器遍历所有后代节点(子节点及其子节点等),以建立一系列代表它们的HTML标记。除非你想要标记,否则你通常不想使用'.html()'。你想在大多数时间处理元素(实际对象),而不是标记。我不能说剧本的其余部分,但你可能不希望在那里,不。 –
.html()与原生javascript属性innerHTML非常相似,它只是针对所选元素中的所有html。 – deowk