[英]Regex in javascript replace function
一個正則表達式的新手正在嘗試在Java腳本中執行一些正則表達式替換功能,這是我的內容和代碼
jQuery("td[headers='name_head']").each(function (index, value) {
var text = jQuery(this).html();
if( text.indexOf('<a href=') >= 0){
jQuery(this).text(text.replace(/<a href=.*\"$/, ""));
}
});
HTML內容將如下所示
<a href="/sf/tracker/do/editField/projects.srk_test_pro_ject/tracker.Activity?fieldid=fild20226" class="DisableItemLink" onclick="javascript:return ((adminTrackerForm.hasChanges.value == 'true' && confirm('You have unsaved changes to your field ordering. If you proceed, your ordering changes will be lost. Continue?')) || adminTrackerForm.hasChanges.value == 'false');">Calculate Points</a>
我只想只刪除href“”內的值
請對此有所了解
關於Sathish
text()
方法僅檢索不包含任何HTML標記的文本內容。 您可以將html()
方法與回調函數一起使用,在該函數中,您可以將舊的HTML內容作為回調的第二個參數,並根據舊值生成更新的HTML。
a
標簽的href
屬性值更新為空,由於所有值都必須為空,因此無需循環遍歷它們。
jQuery("td[headers='name_head'] a").attr('href', '');
更新1:如果您要迭代並根據條件進行一些操作,請執行以下操作。
jQuery("td[headers='name_head'] a").each(function(){
if(//your ondition){
$(this).attr('href', '');
}
});
要么
jQuery("td[headers='name_head']").each(function(){
if(//your ondition){
$('a', this).attr('href', '');
}
});
更新2:如果要刪除整個屬性,請使用removeAttr('href')
方法,該方法將刪除整個屬性本身。
jQuery("td[headers='name_head'] a").removeAttr('href');
你為什么要重新發明輪子?
您不需要正則表達式即可實現此目的,您可以通過以下方式簡單地做到這一點:
jQuery("td[headers='name_head'] a").attr('href', '');
它將td[headers='name_head']
所有<a>
元素的href
設置為""
,因此它將始終遵守您的條件。
我沒有測試此代碼; 但是這樣的事情應該有所幫助,不要認為您需要使用正則表達式;
$('a.DisableItemLink[href!=''][href]').each(function(){
var href = $(this).attr('href');
// do something with href
})
這段代碼選擇了具有DisableItemLink類並設置了位置的所有元素,並將其設置為空白。
我對您在更大的方案中嘗試做的事情感到好奇,聽起來可能會有更好的方法來解決。
參考: 一些用於鏈接的良好選擇器組合
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.