在jquery中选择一个char

时间:2010-08-08 09:52:36

标签: jquery

我有一个问题,

<a id="shoppingLink1" href="?page=bestellen&amp;action=add&amp;id=2">
  <img src="images/shoppingcartButton.png" class="shoppingButton"  alt="shoppingcartButton" title="shoppingcartButton"/>
</a><br/>

在jquery中,当我点击shoppingButton时,我想从id“shoppingLink”中选择最后一个字符。 “1”。

这些是动态添加的,如果它是10,它应该自动选择最后2个字符。谁可以帮助我?

3 个答案:

答案 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}}属性idid开头。然后它会将这些数字解析为"shoppingLink"的数字。

答案 2 :(得分:0)

你可以反过来看一下:你知道期待字符串'shoppingLink'所以首先关闭它然后解析数字:

$('a.shoppingButton').click(function() {
    var theID = parseInt($(this).attr('id').replace('shoppingButton', ''));
    theID = isNaN(theID) ? 0 : theID;
    // actions here
});​