Javascript 我怎样才能找到一些链接
我在jquery中遇到了一些问题 我有一个问题,这是我如何可以得到一些链接的数字 我只想坐在桌子上Javascript 我怎样才能找到一些链接,javascript,jquery,Javascript,Jquery,我在jquery中遇到了一些问题 我有一个问题,这是我如何可以得到一些链接的数字 我只想坐在桌子上 id=1293399 id=609876 id=6789234 id=3421 id=1293399 id=609876 id=6789234 id=3421 以下连结 href="/inedx.php?form=11732&id=1293399&min=info_custom href="/inedx.php?form=11732&id=609876&min=
id=1293399
id=609876
id=6789234
id=3421
id=1293399
id=609876
id=6789234
id=3421
以下连结
href="/inedx.php?form=11732&id=1293399&min=info_custom
href="/inedx.php?form=11732&id=609876&min=info_custom
href="/inedx.php?form=11732&id=6789234&min=info_custom
href="/inedx.php?form=11732&id=3421&min=info_custom
试验过这个,,
但我没能把它们弄到手
<script>
$(function(){
$("#ABC tr").each(function(){
var A = $(this).find('td:nth-child(1)').find('a').attr("href");
var B = $(A).match(/[\d]+/d);
alert(B);
});
});
</script>
<body>
<table id='ABC' border='2'>
<tr>
<td><a href='href="/inedx.php?form=11732&id=1293399&min=info_custom'>AAAy</a></td>
<td>BBB</td>
<td>CCC</td>
</tr>
<tr>
<td><a href='href="/inedx.php?form=11732&id=609876&min=info_custom'>AAAy</a></td>
<td>BBB</td>
<td>CCC</td>
</tr>
<tr>
<td><a href='href="/inedx.php?form=11732&id=6789234&min=info_custom'>AAAy</a></td>
<td>BBB</td>
<td>CCC</td>
</tr>
<tr>
<td><a href='href="/inedx.php?form=11732&id=3421&min=info_custom'>AAAy</a></td>
<td>BBB</td>
<td>CCC</td>
</tr>
</table>
</body>
MDN:
现场演示:这里有一个略显粗糙的方法
var B= "id="+A.split("&id=")[1].split("&")[0];
js fiddle:$(函数(){
$('a')。每个(函数(){
var href=$(this.attr('href');
/*var id=href.substring(href.indexOf('&')+1,href.lastIndexOf('&')*/
var id=href.match(/id=\d+/g);
$('body').append(id).append('
')//append to body
//警报(id)
})
});
attr()
返回属性值,因此A
是href字符串$(A)
然后将使用href字符串作为jquery选择器查找节点——当然这不是您想要做的
我会将regexp匹配行更改为:
var B = A.match(/id=\d+/);
下面是另一个不依赖于位置id参数的答案:
$(function() {
$("#ABC tr").each(function() {
var url = $(this).find('td:nth-child(1)').find('a').attr("href");
alert("id="+getURLParam("id", url));
});
});
function getURLParam(name, url) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + name + "=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(url);
if (results == null) return "";
else return results[1];
}
小提琴:
注意:
从中给出的gup()函数的实现中借用的逻辑代码的当前结果是什么?如果要从
match()
中获取结果数组,是否需要g
标志?确定。我相信一个虚假的网络教程。@LarsH-.match
根据MDN,默认情况下总是会返回一个数组。谢谢,引用很有帮助。很好..简洁明了+1为什么要投反对票?mid解释?此解决方案仅在id是第一个查询参数时有效。。如果ID位于无人喜欢的其他位置,则将失败。.match
。。。当然,这就是为什么我没有投反对票,但这是硬编码,不是一个很好的解决方案。@Derek,我使用了match()
(与您的答案无关)。很有趣,尽管我相信在id
查询参数第一个的情况下(不太可能?)它会失败。例如,在href中=“/inedx.php?id=1293399&form=11732&……
@LarsH fair comment。我在下面添加了另一个解决方案来处理这个问题。限制:这将匹配第一个查询参数的某些部分,其名称以id
结尾,其值以数字开头。因此,如果您有…?pid=26hrumph&userid=bar&id=938
,则结果将是id=26
+1,以便进行可靠的查询参数匹配,并用于引用。:-)
var B = A.match(/id=\d+/);
$(function() {
$("#ABC tr").each(function() {
var url = $(this).find('td:nth-child(1)').find('a').attr("href");
alert("id="+getURLParam("id", url));
});
});
function getURLParam(name, url) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + name + "=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(url);
if (results == null) return "";
else return results[1];
}