jQuery:如何检查元素属性是否包含字符串的一部分?

时间:2010-08-31 16:53:14

标签: jquery

就像,我想检查链接是否具有某个域,或者是否已将参数附加到末尾。

有没有办法做一个正则表达式的事情,比如〜=也许?

目前,我有

    alert(ref);
        $j("a[href*='mysite']").each(function(i){
            alert("hello");
            $j(this).attr('href',$j(this).attr('href') + "?ref=" + $j.cookie.get("tb_ref"));
        }); 

但选择器无效。 (我从未看到Hello警报,但我播种了alert ref警报。

我的标签

<a href="http://domain.mysite.com/">yeah, link</a>
<a href="http://google.com/">g, link</a>

3 个答案:

答案 0 :(得分:14)

使用substring/contains选择器:

$("selector[name*='mystring']")

找到属性name =“somemystring”

如果您要查找由空格分隔的整个单词,请使用whole word selector

$("selector[name~='mystring']")

找到属性name =“some mystring is good”

编辑我从上面获取了您的代码并为其创建了jsFiddle。我看到一个'Hello'警告弹出窗口。 (我没有对alert(ref)发出警报,因为我不知道ref是什么。)因此,选择器适用于您的href属性。你正在使jQuery与正常情况不同(正常= $,你正在使用$j)。你是否正确注册了这个别名?如果您改为使用$jQuery,那么您的代码是否有效?

答案 1 :(得分:2)

您可以使用the attribute contains selector*=),如下所示:

$("a[href*=somedomain.com]")

还有other attribute selectors

答案 2 :(得分:1)

如果链接为<a id='link' href='www.google.com/myparam'></a>,并且您想要告诉链接是否包含myparam,请使用jQuery / javascript:

/myparam/.test($("#link").attr('href'))
相关问题