2

我正在处理一个包含 jQuery 代码的 PHP 文档。我正在使用 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 语句上的外部双引号吗?

编辑

因此<a>,除了转义类周围的双引号之外,我试图替换的元素原来是一个问题:)。感谢您非常及时的帮助。我正在注册以在信用到期时给予信用:)

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

2 回答 2

4

由于最大的变化是添加了引号,请仔细检查 class 属性是否没有打开未终止的字符串:

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

// Fixed:
$('div').replaceWith('<span class="something">');
于 2010-09-03T01:32:33.393 回答
0

为了可读性,并避免像这样混淆自己,请考虑使用以下语法来代替 jQuery DOM 插入:

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

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

于 2010-09-03T09:09:04.627 回答