使用javascript / jquery从字符串数组中删除文本

时间:2011-11-17 05:57:42

标签: javascript jquery

使用.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

2 个答案:

答案 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);

直播收藏有一些优势。 : - )