我正在使用包装特定文本替换特定文本。无论如何我很困惑这样做。我能够找到与我的场景匹配的特定单词。但是,我需要在
中替换它们<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>
$('.item-devider').map(function(){
var text = this.previousSibling.nodeValue.indexOf(': No') == -1 ? undefined : this.previousSibling.nodeValue;
if(text!= undefined) {
}
});
小提琴http://jsfiddle.net/EwNRJ/1135/
非常感谢任何想法
答案 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/>');
答案 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 强>