如何通过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
答案 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之后的所有字符。