我正在尝试使用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>');
});Demo on jsFiddle
发布于 2013-05-15 01:57:08
代码中的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>');JS Fiddle
发布于 2013-05-15 01:56:41
试试这个-
$('table:eq(0) th:contains("' + mysearch + '")').contents().wrapAll('<span class = "red"></span>');--> http://jsfiddle.net/8kMqW/2/工作演示
https://stackoverflow.com/questions/16549704
复制相似问题