如何通过jquery获取匹配ID

时间:2014-08-31 15:27:50

标签: javascript jquery

如何通过jquery获得匹配(id) 我想得到(id)in(href)Between(span)

如果代码 这里

HTML

<table>
<tr>
<td class='zero'>
  <span>
   <a href="http//google&id=222.com">123</a>
   <a>hgi</a>
  </span>
   <span>
   <a href="http//google&id=111.com">123</a>
   <a>hgi</a>
  </span>
   <span>
   <a href="http//google&id=333.com">123</a>
   <a>hgi</a>
  </span>

</td>
</tr>
</table>

jquery

$(".zero span").each(function(){
$(this).find("a").attr("href").match(/id=/);

});

但错误&gt; _&lt; 为什么? 和 怎么样?

我想要

id=222
id= 333
id= 111

3 个答案:

答案 0 :(得分:1)

您的某些<a />元素没有href属性。在这种情况下,attr()将返回undefined。尝试在match()上调用undefined时,JavaScript会抛出错误。

修复:

$(".zero span").each(function(){
    href = $(this).find("a").attr("href");
    if (href !== undefined) {
        href.match(/id=/);
    }
});

或者更改选择器以包含a[href]

外:

$(".zero span a[href]").each(function(){
    $(this).attr("href").match(/id=/);        
});

内部:

$(".zero span").each(function(){
    $(this).find("a[href]").attr("href").match(/id=/);
});

答案 1 :(得分:0)

你需要这个:

$(".zero span").each(function(){
   alert($(this).find("a").attr("href").match(/id=\d+/)[0]);
});

答案 2 :(得分:0)

你试过吗

$(this).find("a").attr("href").match(/id=.*/);

这将匹配id之后的所有字符。

相关问题