在jQuery replaceWith()函数</div>中使用<div class =“something”>

时间:2010-09-03 01:18:15

标签: jquery quotes double-quotes

我正在开发一个包含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>');";

2 个答案:

答案 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);

哦,如果你仔细看看上面问题中代码突出显示的方式,你已经可以看到你做错了什么;)