多次调用变量

时间:2013-11-13 19:58:37

标签: jquery variables

我试图多次调用一个变量,但它只在一次工作。我猜你只能使用一次变量。有办法解决这个问题吗?

以下是我想要实现的一个例子......

var prependThis = $('<li><a href="#">PREPEND ME</a></li>');
var andThis = $('<li><a href="#">PREPEND ME TOO</a></li>');
$(function () {
    if ($('body').hasClass('test')) {
        $(prependThis).prependTo($('.testing'));
        $(andThis).prependTo($('.test'));
    } else if ($('body').hasClass('anothertest')) {
        $(prependThis).prependTo($('.testing'));
        $(andThis).prependTo($('.test'));
    }
});

2 个答案:

答案 0 :(得分:0)

DOM对象只能附加一次。您需要克隆jQuery元素,以便能够多次附加它。

var prependThis = $('<li><a href="#">PREPEND ME</a></li>');
var andThis = $('<li><a href="#">PREPEND ME TOO</a></li>');

$(function () {
    if ($('body').hasClass('test')) {
        prependThis.clone().prependTo($('.testing'));
        andThis.clone().prependTo($('.test'));
    } else if ($('body').hasClass('anothertest')) {
        prependThis.clone().prependTo($('.testing'));
        andThis.clone().prependTo($('.test'));
    }

});

答案 1 :(得分:0)

您没有使用选择器获取有效的jQuery对象:

var prependThis = $('<li><a href="#">PREPEND ME</a></li>');
var andThis = $('<li><a href="#">PREPEND ME TOO</a></li>');

请参阅here

如果你想附加一个字符串,你应该用引号将它们分配给变量:

var prependThis = '<li><a href="#">PREPEND ME</a></li>';
var andThis = '<li><a href="#">PREPEND ME TOO</a></li>';

在DOM中放置时会看到HTML代码。

所以你可以这样做:

$(function() {
if ($('body').hasClass('test')){
    $(prependThis).prependTo('.testing');
    $(andThis).prependTo('.test');
}
else if ($('body').hasClass('anothertest')){
    $(prependThis).prependTo('.testing');
    $(andThis).prependTo('.test');
}

});

请注意,您确实错过了$(prependThis).prependTo('.testing');

的单引号

<强> jsFiddle