Я использую метод .load()
страниц фрагментов JQuery, чтобы перезагрузить часть моей страницы:Используйте JQuery (в) для загрузки фрагментов страницы, но только получить содержимое селектора
$("#submit").click(function() {
$("#box").load('/ajax/box/ #box');
});
Он работает, однако это вызывает потому что после загрузки содержимого. Поскольку эта функция по существу использует .innerHTML
, она заменяет код внутри моего div
. Результат HTML выглядит следующим образом:
<div id="box">
<div id="box">
<!-- this is my page -->
</div>
</div>
Я попытался с помощью .parent()
, но удаляет все другие div
сек в родителе.
$("#submit").click(function() {
$("#box").parent().load('/ajax/box/ #box');
});
По сути, это то, что я пытаюсь сделать (я знаю, что приведенный ниже код является недействительным, но это означает, что я пытаюсь сделать):
$("#submit").click(function() {
$("#box").load('/ajax/box/ $('#box').html()');
});
Есть ли способ, что я могу сделать #box
be заменен#box
?
Следует иметь в виду, что я не могу редактировать HTML, так что это должно произойти только с jQuery.
Та же проблема здесь: http://stackoverflow.com/questions/1344030/how-can-i-use-jquery-load-to-replace-a- div-including-the-div - Рекомендуемый ответ - это вызов '$ .get', и внутри обратного вызова запускается' replaceWith' в целевом элементе. – tymeJV
Это не сработает. Прочитайте комментарий в принятом ответе http://stackoverflow.com/a/5300738/1893629 – doitlikejustin
Не могли бы вы использовать 'unwrap()'? Что-то вроде: '$ (" # box "). Load ('/ ajax/box/#box', function() {$ (this) .find (" # "+ this.id) .unwrap()}); ' – tymeJV