处理列中的所有字符串

时间:2014-01-05 03:19:19

标签: javascript jquery html

我在表格列中有一组网址,如下所示:

<tr>
  <td class="impression_referer">http://www.google.fi/search?hl=en&amp;q=http+header+referer&amp;btnG=Google-search&amp;meta=&amp;aq=f&amp;oq=</td>
</tr>
<tr>
  <td class="impression_referer">http://www.facebook.com</td>
</tr>

我有一个.js文件,我在底部调用我的应用程序的所有函数,其中包括应该操作上述字符串的函数:

$(document).ready(function() {  
  cleanUpUrls();
});

我必须操纵字符串的代码如下所示:

var matches = url.match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i);
var domain = matches && matches[1];

我应该如何在cleanUpUrls()函数中编写代码,以便在页面加载时更新所有提到的字符串?

1 个答案:

答案 0 :(得分:2)

试试这个:

$("td.impression_referer").text(function(i, val) {
    var matches = val.match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i);
    return matches ? matches[1] : val;
});

演示:http://jsfiddle.net/Ht9HC/

使用$("td.impression_referer")将选择impression_referer类的所有td元素。 .text() method可用于获取或设置html元素的文本。如果将回调函数传递给.text(),则每个元素将调用一次函数,并将现有文本值作为参数传递,并将返回的值设置为新文本 - 您不必手动编写自己的循环代码,因为jQuery会在幕后为您处理。