首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么jQuery要自己完成标记

问为什么jQuery要自己完成标记
EN

Stack Overflow用户
提问于 2012-08-18 14:56:05
回答 3查看 88关注 0票数 4

我试图用类A、和B的其他div标记封装标记。以下是我的最终结果:

代码语言:javascript
复制
<div class="A">
    <div class="B">
      **<div class="C"></div>**
    </div>
</div>

我正在使用以下代码来执行此操作:

代码语言:javascript
复制
<script>
    jQuery('<div class="A"><div class="B">').insertBefore('.C');
    jQuery('</div></div>').insertAfter('.C');
            </script>

然而,代码的出处是:

代码语言:javascript
复制
<div class="A">
  <div class="B">
  </div>
</div>
<div class="C">
</div>

这显然不是我的本意。请帮帮忙。

EN

回答 3

Stack Overflow用户

发布于 2012-08-18 15:01:05

wrap是您需要的函数,因为您希望将两个div标记封装在一个现有的标签上,而不是在它之前或之后插入新的标记:

代码语言:javascript
复制
$('.C').wrap('<div class="A"><div class="B"></div></div>');
票数 4
EN

Stack Overflow用户

发布于 2012-08-18 15:01:52

你的电话不正确

应该是

代码语言:javascript
复制
<div class="C">Some Text</div>

<script type="text/javascript">
  $(function(){
     $(".C").wrap($("<div class='A' />")).wrap($("<div class='B' />"));​
  });
</script>

您没有在第一次调用A类div中关闭,所以在开发人员实现innsertAfter方法时留给jquery处理它。

工作实例http://jsfiddle.net/mjaric/kZSTu/1

票数 2
EN

Stack Overflow用户

发布于 2012-08-18 15:03:32

它可能不是jQuery,而是呈现它的浏览器。我已经看到Chrome的检查器渲染结束标签,我在原始标记中忘记了它们。

实际上,您似乎希望使用wrap()函数。

您的脚本看起来应该是:

代码语言:javascript
复制
$('.C').wrap(function () {
  return '<div class="A"><div class="B">';
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12019563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档