Javascript 操作列中的所有字符串
我在表列中有一组URL,如下所示:Javascript 操作列中的所有字符串,javascript,jquery,html,Javascript,Jquery,Html,我在表列中有一组URL,如下所示: <tr> <td class="impression_referer">http://www.google.fi/search?hl=en&q=http+header+referer&btnG=Google-search&meta=&aq=f&oq=</td> </tr> <tr> <td class="im
<tr>
<td class="impression_referer">http://www.google.fi/search?hl=en&q=http+header+referer&btnG=Google-search&meta=&aq=f&oq=</td>
</tr>
<tr>
<td class="impression_referer">http://www.facebook.com</td>
</tr>
var matches = url.match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i);
var domain = matches && matches[1];
我必须操作字符串的代码如下所示:
<tr>
<td class="impression_referer">http://www.google.fi/search?hl=en&q=http+header+referer&btnG=Google-search&meta=&aq=f&oq=</td>
</tr>
<tr>
<td class="impression_referer">http://www.facebook.com</td>
</tr>
var matches = url.match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i);
var domain = matches && matches[1];
我应该如何在cleanUpUrls()
函数中编写代码,以便在页面加载时更新所有提到的字符串?尝试以下方法:
$("td.impression_referer").text(function(i, val) {
var matches = val.match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i);
return matches ? matches[1] : val;
});
演示:
使用
$(“td.impression\u referer”)
将使用impression\u referer
类选择所有td元素。可以使用获取或设置html元素的文本。如果将回调函数传递给.text()
,则每个元素将调用一次函数,并将现有文本值作为参数传递,您返回的值将被设置为新文本-您不必手动编写自己的循环代码,因为jQuery会在幕后为您处理这些代码。您问的是如何使用类标记impression\u referer
在节点上循环?是的。当最终结果是更新DOM
时,我不确定如何以最有效的方式进行此操作-什么样的循环
,什么样的集合
,什么样的替换
方法。我知道这是web开发人员的日常任务,但对我来说并不清楚。+1我不知道您可以通过这种方式将回调函数传递给text()
。太棒了。@DimitarDimitrov-几乎所有获取和设置某个内容的jQuery方法都允许回调,包括.html()
,.prop()
,.css()
,等等。非常棒。(溶液,解释,三元操作。)