在HTML标记中查找特定关键字并使用jquery替换

时间:2012-01-20 17:02:15

标签: javascript jquery html

我需要做的是在我的HTML中找到一个特定的字符串,如果发现我将用什么都替换它。

Exp:

HTML:

<img src=`javascript:alert("hello ,world!")`>

我需要做的是找到一些关键字如javascript,alert等的出现,如果在上面的HTML标签中找到,我需要用空字符串替换它。

我知道jquery有一些有用的功能,比如

  

.find(),. renplace()和:contains

但实际上我无法弄明白该怎么做,因为我在javascript中并不是那么好。

帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

从您的问题中不清楚您是否已经知道要检查哪些属性,因此我将提供两种解决方案 - 具体取决于您是否已经知道。 如果您知道要搜索关键字的属性,请尝试以下操作:

var attribVal = $("img").attr("src");
if (attribVal.match(/(javascript)|(alert)/i)
{
    $("img").attr("src", "");
}

如果您不知道属性名称,则将html存储在变量中并比较变量的值。假设以下div是img标记的父级:

<div id="myDiv">
    <img src=`javascript:alert("hello ,world!")` id='myImg'>
</div>

执行以下操作:

 var myVar = $("#myDiv").html();
 if (attribVal.match(/(javascript)|(alert)/i)
 {
    $("img#myImg").attr("src", "");
 }

答案 1 :(得分:1)

你正在做的事情甚至不是真正需要jQuery轻松完成的事情。这是纯JavaScript中的一个例子。

HTML

<a id="someLink" src="javascript:alert('hello world!')">LINK THAT DOES STUFF</a>
//how an image tag can have a JS src is beyond me.

现在,如果我想在 src 属性中查找“ javascript ”等关键字。我会首先得到DOM元素:

var domObject=document.getElementByID('someLink') 
/*$('someLink') is jQuery equivalent*/

现在要获取所述属性中的内容我会使用domObject.getAttribute('src') 这将返回“javascript:alert('hello world!')”

最后,我将拥有一个将所有内容组合在一起的功能,只需检测我正在寻找的内容并将其清空。

    function getRidofJavascriptInSrc(object){
       a=object.getAttribute('src');
       if(/javascript/i.test(a)) //this is REGEX, it will look for the keyword JavaScript and run statement if true
       {object.setAttribute('src')=""}
    } 
   getRidofJavascriptInSrc($('someLink'));