使用.each()
浏览数组,并尝试使用replace()
查找所有“<br>
”并替换为“”(非常简单)但没有任何反应 - 没有错误,它只是不会取代。
//get values of each td in row
var values = '';
var tds = $(this).find('td');
$.each(tds, function(index, tditem) {
values = values + "td" + ':' + tditem.innerHTML + '\n';
values = values.replace(/<br>/i, " ");
});
承认操作DOM元素会更好(并选择其中一个答案作为正确的答案)我最后将其添加到我的函数中,因为它让我的生活在短期内变得更轻松:
values = values.replace(/<br>/i, " ");
谢谢@all
答案 0 :(得分:4)
您无需进行字符串处理即可实现此结果。这是最好的(正确的)方法:
$(this).find('td br').remove();
一般规则是:始终使用DOM来访问和操作元素,避免对这种操作进行字符串分析。
修改强>
如果您不想更改真正的DOM元素,只需克隆一个变量,如下所示:
var HTML = '';
var tds = $(this).find('td').clone();
$(tds).find('br').remove();
HTML = $(tds).html();
alert(HTML);
答案 1 :(得分:1)
您应该使用DOM方法删除DOM元素,例如:
function removeBRs(el) {
var brs = el.getElementsByTagName('br');
while (brs.length) {
el.replaceChild(document.createTextNode(' '), brs[0]);
}
}
使用以下方式调用:
removeBRs(this);
直播收藏有一些优势。 : - )