У меня есть обернутый jQuery элемент, который я хотел бы добавить в строку html. Я не могу обернуть это вокруг, поскольку append(), по-видимому, принимает строки, но не существующие элементы jQuery (я могу ошибаться здесь). У меня есть следующие настройки:Добавить элемент jQuery в строку, содержащую html
var row='<tr><td>data1</td><td>data2</td><td>';
var img=$('<img src="path/to/img.png"');
img.click(myClickHandler);
Теперь то, что я пытаюсь сделать, это добавить этот элемент IMG к моей строке и «закрыть» в строке с закрывающим тегом. Я делаю это следующим образом:
var jRow=$(row);
jRow.append(img);
jRow.append('</td></tr>');
После моей строки готов я добавить его к моему столику:
$('#tableId').append(jRow);
Ну, все выше не работает, потому что я получаю [Объект Object ] вместо тега изображения в моей добавленной строке.
Моя цель состоит в том, чтобы иметь строку с изображением в последней ячейке и рабочий клик.
Pleease, помощь.
Этот вызов html() возвращает только то, что содержится в
html() и append() или почти точно такие же по функциональности; посмотрите на источник jQuery. И append() может принимать строки, элементы DOM, объекты jQuery, почти что угодно ... – James
Хорошо, спасибо за разъяснение! Рад, что вы решили. – miek
Я не уверен на 100%, но я думаю, что HTML фрагменты всегда должны быть "полной", а это означает, что добавление только
"</td></tr>"
не будет работать.Решение состоит в том, чтобы построить строку с полным фрагментом HTML, а затем добавить ее вместо добавления частей по одному. Вы всегда можете добавить обработчик щелчка после того, как вы создали объект JQuery, как это:
источник
2009-06-10 08:34:22
Я бы предположил, что у него уже есть стол, в котором он просто манипулирует строками. Но кроме того, я абсолютно согласен :) – miek
Смежные вопросы