我正在尝试使用jQuery将文本包装在<span>
标记内。以下代码无效。请指出我哪里出错了。还请建议一个更好/不同的方法。
var mysearch = '(05/13/2012-11/13/2012)';
$('table:eq(0) tr:eq(1) th:contains("' + mysearch + '")').filter(function () {
return this.html().replace('(05/13/2012-11/13/2012)', '<span class = "red"> (05/13/2012-11/13/2012)</span>');
});
答案 0 :(得分:5)
this
是一个没有html
方法的DOM Element对象,也不需要filter
方法,您可以使用html
方法
$('table:eq(0) tr:eq(1) th:contains("' + mysearch + '")').html(function(_, html) {
return html.replace('(05/13/2012-11/13/2012)', '<span class="red"> (05/13/2012-11/13/2012)</span>');
});
如果th
的内容等于mysearch
字符串,您还可以使用wrapInner
方法:
$('table:eq(0) tr:eq(1) th').filter(function(){
return $.trim($(this).text()) === mysearch;
}).wrapInner('<span class="red"></span>');
答案 1 :(得分:1)
试试这个 -
$('table:eq(0) th:contains("' + mysearch + '")').contents().wrapAll('<span class = "red"></span>');
工作演示-->
http://jsfiddle.net/8kMqW/2/