使用JQuery </div>将文本包装在<div>中

时间:2014-04-15 05:10:14

标签: jquery regex

我正在使用包装特定文本替换特定文本。无论如何我很困惑这样做。我能够找到与我的场景匹配的特定单词。但是,我需要在

中替换它们

这是我的html

<small>
    Size: M<div class="item-devider"></div> 
    checkbox_test: Yes<div class="item-devider"></div>
    I don't mind about color: No<div class="item-devider"></div> 
    test: No<div class="item-devider"></div> 
    test_group: select1<div class="item-devider"></div>
</small>

JQuery的

$('.item-devider').map(function(){
    var text = this.previousSibling.nodeValue.indexOf(': No') == -1 ?  undefined  : this.previousSibling.nodeValue;              
    if(text!= undefined) {

    }
});    

小提琴http://jsfiddle.net/EwNRJ/1135/

非常感谢任何想法

3 个答案:

答案 0 :(得分:1)

尝试,

var texts = $('.item-devider').map(function(){
    return this.previousSibling.nodeValue.indexOf(': No') > -1;        
});

上面的代码将返回一个div,该div在其先前位置有一个字符串,其中包含文字&#39;:No&#39;

也试试这个,

var texts = $('#sample small').contents().filter(function(){
    return $(this).text().indexOf(': No') > -1;     
}).wrap('<div/>');

DEMO

答案 1 :(得分:0)

undefined的回调中返回.map将删除不需要的元素。

var texts = $('.item-devider').map(function(){
    return this.previousSibling.nodeValue.indexOf(': No') == -1 ?  undefined  : this.previousSibling.nodeValue;
}).get();

<强> The working demo.

答案 2 :(得分:0)

你可以这样做:

$('#sample small').contents().filter(function() {
    return this.nodeType === 3 && $.trim(this.nodeValue).indexOf(': No') > -1;
}).wrap('<div class="highlight" />');

<强> Updated Fiddle