С помощьювнутри функции jQuery replaceWith () - PullRequest
2 голосов
/ 03 сентября 2010

Я работаю над документом PHP, в котором есть код jQuery.Я использую функции replaceWith (), чтобы удалить внешние div и заменить на span.кажется, я могу только заменить его на <span>, а не <span class="something">

Почему это так?

Редактировать : Вот пример кода:

Спасибо, Дейв, но на самом деле я использую второй вариант в вашем коде выше, вот что я пытаюсь сделать:

$response[] = "jQuery('#myID').replaceWith('<span>'+jQuery('#myID').html()+'</span>');";

Приведенный выше код работает.По сути, у меня есть элемент <a>, который я хочу заменить элементом <span> и изменить класс в ответе на ajax.

Теперь, если я добавлю классы к любому из указанных выше диапазонов::

$response[] = "jQuery('#myID').replaceWith('<span class"something">'+jQuery('#myID').html()+'</span>');";

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

Edit

Так получилосьчтобы не было проблем с моим <a> элементом, который я пытался заменить, в дополнение к экранированию двойных кавычек вокруг класса :).Спасибо за чрезвычайно оперативную помощь.Я регистрируюсь, чтобы выдать кредит там, где он нужен:)

$response[] = "jQuery('#myID').replaceWith('<span class=\"something\">'+jQuery('#myID').html()+'</span>');";

Ответы [ 2 ]

4 голосов
/ 03 сентября 2010

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

// Broken:                 
$("div").replaceWith("<span class="something">");

// Fixed:
$('div').replaceWith('<span class="something">');
0 голосов
/ 03 сентября 2010

Для удобства чтения и во избежание путаницы с самим собой рассмотрите возможность использования этого синтаксиса для вставки DOM jQuery:

var myDiv = jQuery('#myID');
$('<span></span>').html(myDiv.html()).addClass('something').replaceAll(myDiv);

О, и если вы внимательно посмотрите на то, как ваш код выделен в вопросе выше, вы уже можете видеть, что вы делаете неправильно;)

...