jquery - 如何使用 jquery 在 HTML/CSS 中选择展开的文本?

标签 jquery html css

我有一个正在使用的表单,其中有一些展开的文本。我无权访问 HTML 文件,所以我能够选择它的唯一方法是通过 Jquery(有人告诉我)。这是 HTML 的样子:

<div class="input-entry">
<div class="input-area">
<div class="input-checkbox">
<input type="checkbox" name="accept"> 
I Accept
</div>
</div>
</div>

我需要选择“我接受”来包装 <label>周围。我不太了解 jQuery,但我确实尝试过:

$("div.input-area:contains('I Accept')").wrap("<label for='accept'></label>");

乍一看我认为这会起作用,但我想念 :contains 的解释选择器。

是否可以使用 Jquery 简单地包装它?

最佳答案

是的,这是可能的,您需要获取内容,然后按节点类型进行过滤(nodeType '3' 是文本节点):

$("div.input-checkbox:contains('I Accept')").contents().filter(function(){
    return this.nodeType === 3;
}).wrap("<label for='accept'></label>");

我还更改了您的初始选择器。

http://jsfiddle.net/mb1yg111/

关于jquery - 如何使用 jquery 在 HTML/CSS 中选择展开的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25550188/

相关文章:

html - overflow hidden 的CSS3缩放动画

javascript - Google 应用程序脚本 location.reload 在网络应用程序中

javascript - Bootstrap 3 : Cant make two affix side bars

javascript - 过渡不适用于 translate3d

javascript - 动态插入内容的空白消失

javascript - 根据元素数组动态填充表 td

javascript - jQuery .fadeIn(和所有 jQuery)不工作

javascript - 我可以在 Angular 2 中使用 .effect Jquery

jquery - 使用最接近的返回 null 获取数据属性

html - 左填充在溢出时被覆盖?