新手到正则表达式我试图在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所在
答案 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类的所有元素,并将其设置为空白。
我很好奇你在更大的计划中想要做些什么,听起来似乎有更好的方法可以解决它。