Попытка добавить HTML-код с помощью метода JQuery insertBefore (), но строка HTML-кода перемешалась после запуска - PullRequest
0 голосов
/ 19 сентября 2011

В этом цикле я пытаюсь добавить обработчик событий для каждого «счетчика». Обработчик событий вызывает функцию «hideAll ()», чье входное значение равно «count».

Я делаю это, добавляя HTML-код под идентификатором «next», используя метод JBuery's insertBefore ().

for (count=1; count<=3; count++)
{    

$('<a href="#" onclick="hideAll(' + count + ');return false;">' + count + '</a>').insertBefore("#next");

}

Поэтому, когда я запускаю его, он добавляется, но по какой-то странной причине он добавляется так:

<a onclick="hideAll(1);return false;" href="#">1</a>

Строка href = "#" переносится в конец. Я не могу понять, почему.

Я пытался проверить кавычки и все. Все кажется идеальным, понятия не имею, почему он это делает.

Ответы [ 3 ]

0 голосов
/ 19 сентября 2011

Если вы посмотрите на источник jQuery, то это то, что вызывается при передаче вашей строки,

if ( jQuery.isPlainObject( context ) ) {
    selector = [ document.createElement( ret[1] ) ];
    jQuery.fn.attr.call( selector, context, true );
} else {
        selector = [ doc.createElement( ret[1] ) ];
}

Так что, что бы ни выпрямлял броузер из document.createElement(), это то, что jQuery надевает на DOM.

0 голосов
/ 19 сентября 2011

Это действительно важно для вас?

Дело в том, что код

$('<a href="#" onclick="hideAll(' + count + ');return false;">' + count + '</a>').insertBefore("#next");

не вставляет необработанный HTML перед тегом #next.

Команда

$('<a href="#" onclick="hideAll(' + count + ');return false;">' + count + '</a>');

создает элемент DOM в памяти и помещает его в селектор jQuery.Затем он вставляется в дерево DOM страницы.И как это показано вам как строка до браузера.

0 голосов
/ 19 сентября 2011

В каком браузере вы просматриваете его?

Некоторые браузеры, просматривая dom, показывают свой «окончательный» источник после того, как интерпретировали разметку.

Убедитесь, что вы «Просмотреть»«Источник страницы», а не «Проверка элементов» для получения чистой предварительно интерпретированной разметки.

В конечном счете, однако, порядок атрибутов не имеет значения, поэтому он должен подойти для ваших целей?

...