首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >div :在提示词后面创建jQuery容器的快捷方式

div :在提示词后面创建jQuery容器的快捷方式
EN

Stack Overflow用户
提问于 2011-02-08 03:04:22
回答 4查看 616关注 0票数 0

我正在为一个博客主题创建一个快捷方式,我想在使用提示词之后在元素周围生成一个div容器。例如,我的博客条目是这样的:

代码语言:javascript
复制
<div class="entry">

<p>First Paragraph</p>

<p>[box]</p>

<p>Second Paragraph</p>

<p>Third Paragraph</p>

</div> <!-- .entry -->

我希望通过一些jQuery魔法,它可以变成这样:

代码语言:javascript
复制
<div class="entry">

<p>First Paragraph</p>

<div class="box">

<p>Second Paragraph</p>

<p>Third Paragraph</p>

</div> <!-- .box -->

</div> <!-- .entry -->

还有一条规则:当我创建一个容器框时,我知道我总是在关闭div.entry之前生成它。我希望这个限制将使为jQuery编写规则变得更容易。例如,如果div.box容器中有内容,我永远不会希望标记看起来像这样:

代码语言:javascript
复制
<!-- I will never mark it up this way -->

<div class="entry">

<p>First Paragraph</p>

<div class="box">

<p>Second Paragraph</p>

</div> <!-- .box -->

<p>Third paragraph</p>

</div> <!-- .entry -->
EN

回答 4

Stack Overflow用户

发布于 2011-02-08 03:13:58

我认为你最好的选择是jQuery :contains()选择器。使用它,你可以这样做(注意:它匹配任何在HTML中有方框的段落,也许你需要转义括号):

代码语言:javascript
复制
$("p:contains('[box]')").wrap($('<div>').addClass('box'));

顺便说一句。接受答案并证明你已经在你的问题上付出了努力,这将使它更有可能得到有用的答复。

票数 0
EN

Stack Overflow用户

发布于 2011-02-08 03:16:00

它将是这样的:

代码语言:javascript
复制
$("div.entry").append(
  $("<div>").addClass("box").append("p:contains([box])+*");
);
$("p:contains([box])").remove();
票数 0
EN

Stack Overflow用户

发布于 2011-02-08 03:20:26

您可以找到方框段落的index(),然后在使用wrapAll()之后使用<p>获取它后面的所有段落符号:

代码语言:javascript
复制
var boxAt;

$('p').each(function(){
    var $t = $(this);
    if ($t.html() === '[box]') {
        boxAt = $t.index();
        $t.remove();
    }
});

$('p:gt(' + (boxAt - 1) + ')').wrapAll('<div class="box">');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4925322

复制
相关文章

相似问题

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