我有一个问题,
<a id="shoppingLink1" href="?page=bestellen&action=add&id=2">
<img src="images/shoppingcartButton.png" class="shoppingButton" alt="shoppingcartButton" title="shoppingcartButton"/>
</a><br/>
在jquery中,当我点击shoppingButton时,我想从id“shoppingLink”中选择最后一个字符。 “1”。
这些是动态添加的,如果它是10,它应该自动选择最后2个字符。谁可以帮助我?
答案 0 :(得分:1)
为什么不将其称为shopping-link-1
或类似内容,并将shoppingButton
类放在a
标记上而不是img
?这样,您可以使用split
方法获取数字ID。以下是一些使用jQuery的示例:
$('a.shoppingButton').click(function() {
var link_id = parseInt($(this).attr('id').split('-')[2]);
// do your thing with link_id here
});
这样,当你按'-'
字符分割时,无论它有多少位数,都可以保证只返回数字。但如果您绝对需要保留当前标记,请使用正则表达式:
$('img.shoppingButton').click(function() {
var link_id = parseInt($(this).parent().attr('id').match(/(\d+)$/)[1]);
// do your thing with link_id here
});
这样它会响应图片上的点击次数,仍然会从a
标记中提取ID。
答案 1 :(得分:1)
$('.shoppingButton').click(function () {
var id = parseInt($(this).parent('a[id^=shoppingLink]').attr('id').match(/\d+$/)[0], 10);
// Do stuff.
return false;
});
这使用RegExp匹配$(this).parent('a[id^=shoppingLink]').attr('id')
末尾的所有数字(即.shoppingButton
的父a
的{{1}}属性id
以id
开头。然后它会将这些数字解析为"shoppingLink"
的数字。
答案 2 :(得分:0)
你可以反过来看一下:你知道期待字符串'shoppingLink'所以首先关闭它然后解析数字:
$('a.shoppingButton').click(function() {
var theID = parseInt($(this).attr('id').replace('shoppingButton', ''));
theID = isNaN(theID) ? 0 : theID;
// actions here
});