我试图多次调用一个变量,但它只在一次工作。我猜你只能使用一次变量。有办法解决这个问题吗?
以下是我想要实现的一个例子......
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'));
}
});
答案 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 强>