簡體   English   中英

javascript中的正則表達式替換功能

[英]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' &amp;&amp; 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM