正则表达式在javascript替换功能

时间:2017-05-09 14:55:22

标签: javascript jquery regex dom

新手到正则表达式我试图在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所在

3 个答案:

答案 0 :(得分:3)

text()方法只检索不包含任何HTML标记的文本内容。您可以将html()方法与回调函数一起使用,您可以将旧的HTML内容作为回调的第二个参数,并根据旧值生成更新的HTML。

<小时/> 更好的方法是将href标记的a属性值更新为空,直接选择它们,不需要循环遍历它们,因为所有值都必须为空。

jQuery("td[headers='name_head'] a").attr('href', '');

UPDATE 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');

答案 1 :(得分:2)

你为什么要重新发明轮子?

你不需要正则表达式来实现这一点,你可以这样做:

href

它会为""内的所有<a>元素设置td[headers='name_head']到{{1}},因此它始终会尊重您的条件。

答案 2 :(得分:0)

我没有测试过这段代码;但这样的事情应该有所帮助,不要认为你需要使用正则表达式;

$('a.DisableItemLink[href!=''][href]').each(function(){
    var href = $(this).attr('href');
    // do something with href
})

这段代码选择具有设置位置的DisableItemLink类的所有元素,并将其设置为空白。

我很好奇你在更大的计划中想要做些什么,听起来似乎有更好的方法可以解决它。

参考:some good selector combinations for links