【问题标题】:Using <div class="something"> inside a jQuery replaceWith() function在 jQuery replaceWith() 函数中使用 <div class="something">
【发布时间】:2011-04-07 15:22:45
【问题描述】:

我正在编写一个包含 jQuery 代码的 PHP 文档。我正在使用 replaceWith() 函数来剥离外部 div 并用 span 替换。看来我只能用&lt;span&gt;而不是&lt;span class="something"&gt;替换它

这是为什么呢?

编辑:下面是代码示例:

谢谢戴夫,但我实际上在上面的代码中使用了第二个选项,这就是我想要做的:

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

上面的代码有效。基本上,我有一个 &lt;a&gt; 元素,我想用 &lt;span&gt; 元素替换并更改 ajax 响应的类。

现在,如果我在上面的任何 span 中添加类:,像这样:

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

代码中断,是不是因为 jQuery 语句的外部双引号?

编辑

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

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

【问题讨论】:

  • 您能举个例子吗?

标签: jquery quotes double-quotes


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢 Yi,我相信你上面的代码可以工作(没有尝试过)但是,我正在修改别人的工作,不想破坏一致性,你对突出显示的代码的注释有所帮助;)
【解决方案2】:

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

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

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

【讨论】:

  • 这是最重要的。 (+1)
  • 谢谢 Dave,部分问题确实是未终止的字符串 :) 我还不能投票,但一旦我可以投票就会这样做
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多