Вызов переменной несколько раз

0

Я пытаюсь вызвать переменную несколько раз, но она работает только один раз. Я предполагаю, что вы сможете использовать эту переменную только один раз. Есть ли способ обойти это?

Вот пример того, что я пытаюсь достичь...

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'));
    }
});
  • 1
    Вы можете называть это столько раз, сколько хотите.
  • 0
    какую переменную вы пытаетесь использовать более одного раза и где?
Показать ещё 4 комментария
Теги:
variables

2 ответа

0
Лучший ответ

Вы не получаете действительный объект jQuery с селекторами:

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

См. Здесь.

Если вы хотите добавить строку, вы должны просто назначить их в кавычках переменной:

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

Это будет видно HTML-код, когда он помещается в DOM.

так что вы можете сделать:

$(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

  • 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
    Нет необходимости делать объект jQuery из объекта jQuery. prependThis уже является объектом jQuery, поэтому вам нужно только клонировать его и добавить к чему-либо. var $clone = prependThis.clone(); $('.test').prepend($clone);
  • 0
    @ Джаспер: Хороший звонок. Я отредактирую

Ещё вопросы

Сообщество Overcoder
Наверх
Меню