正确使用JQuery的prepend(...)函数

时间:2014-09-19 22:24:18

标签: javascript jquery html css

我无法弄清楚这里出了什么问题。我使用CMS将字段内容吐出到页面上与客户想要的位置不同的某个位置。因此,作为一种解决方法,我使用JQuery将该内容重新路由到我需要的位置:

var calcUrBennies = $("div.stl-gift-illustrator-row h3").text();
$("div#calc-benefits-right-wrapper").prepend(calcUrBennies); 
$(document).ready(function(){$("div.stl-gift-illustrator-row h3").hide();});

将内在文本放在需要的位置;但是,我需要calcUrBennies字符串位于h3标记内。我尝试将第二行更改为

$("div#calc-benefits-right-wrapper").prepend("<h3>"+calcUrBennies+"</h3>"); 

但那并没有奏效。我该怎么办?

2 个答案:

答案 0 :(得分:0)

在文档准备好之前运行此代码可能是一个问题。如果你只是想移动那个元素,你可以选择它然后将整个东西移动到dom的另一部分。

这样的东西
$(document).ready(function() {
    var calcUrBennies = $("div.stl-gift-illustrator-row h3");
    $("div#calc-benefits-right-wrapper").prepend(calcUrBennies);
});

这将移动整个h3。它会等到页面加载完毕,因此可能会有一些闪烁。你可以用不同的方式解决这个问题,或者在准备好的事件发生之前尝试一下。

答案 1 :(得分:0)

  

...但是,我需要calcUrBennies字符串在h3标签内。我尝试将第二行更改为

由于h3标签中的文字已经,为什么不移动它们?

var calcUrBennies = $("div.stl-gift-illustrator-row h3"); // <== No `.text()`
$("div#calc-benefits-right-wrapper").prepend(calcUrBennies); 
// No line here using `hide` on the `h3`s

您已经说过现有代码成功移动了文本,但没有h3元素,所以我假设您不需要ready包装器(例如,您的代码是在script标记之后它在HTML中引用的元素,这是完全正常的)。但是为了以防万一,如果那时元素不存在,你将所有代码包装在ready处理程序中:

$(document).ready(function() {
    var calcUrBennies = $("div.stl-gift-illustrator-row h3"); // <== No `.text()`
    $("div#calc-benefits-right-wrapper").prepend(calcUrBennies); 
    // No line here using `hide` on the `h3`s
});

但是,您再次说过您现有的代码移动了文字,所以您不应该这样做。