我正在开发一个包含jQuery代码的PHP文档。我使用replaceWith()函数来剥离外部div并替换为span。我似乎只能将其替换为<span>
而不是<span class="something">
为什么?
修改:以下是代码示例:
谢谢Dave,但实际上我在上面的代码中使用了第二个选项,这就是我想要做的:
$response[] = "jQuery('#myID').replaceWith('<span>'+jQuery('#myID').html()+'</span>');";
以上代码有效。基本上,我有一个<a>
元素,我想用<span>
元素替换,并在ajax响应上更改类。
现在,如果我将类添加到上面的任何跨度:,像这样:
$response[] = "jQuery('#myID').replaceWith('<span class"something">'+jQuery('#myID').html()+'</span>');";
代码中断了,是因为jQuery语句中的外部双引号?
修改
事实证明,我试图替换的<a>
元素是一个问题,除了绕过类的双引号:)。感谢您提供极为迅速的帮助。我正在注册,以便在信用到期时给予信用:)
$response[] = "jQuery('#myID').replaceWith('<span class=\"something\">'+jQuery('#myID').html()+'</span>');";
答案 0 :(得分:4)
由于最大的变化是添加了引号,请仔细检查class属性是否未打开未终止的字符串:
// Broken:
$("div").replaceWith("<span class="something">");
// Fixed:
$('div').replaceWith('<span class="something">');
答案 1 :(得分:0)
为了便于阅读,并避免像这样混淆自己,请考虑将此语法用于jQuery DOM插入:
var myDiv = jQuery('#myID');
$('<span></span>').html(myDiv.html()).addClass('something').replaceAll(myDiv);
哦,如果你仔细看看上面问题中代码突出显示的方式,你已经可以看到你做错了什么;)