2010-08-08 52 views
2

一個char我有一個問題,選擇在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個字符。任何人都可以幫助我?

+0

你能更詳細地顯示? – 2010-08-08 09:57:05

回答

1
$('.shoppingButton').click(function() { 
    var id = parseInt($(this).parent('a[id^=shoppingLink]').attr('id').match(/\d+$/)[0], 10); 

    // Do stuff. 

    return false; 
});​ 

這使用正則表達式來在$(this).parent('a[id^=shoppingLink]').attr('id')結束時(即.shoppingButton的父aid屬性其中id始於"shoppingLink")符合所有數字。然後它將這些數字解析成與parseInt一致的數字。

+0

這看起來是精確的我在找什麼,但正則表達式給出了一個錯誤。螢火蟲說:$(this).parent(「a」)。attr(「id」)。match(/ \ d + $ /)爲空 – vincent 2010-08-08 10:07:48

+0

更新,我的壞事正在做某事,現在完美 – vincent 2010-08-08 10:10:29

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。

0

你可以看看它的其他方式輪:你知道會發生字符串「shoppingLink」,所以帶,其關閉第一然後解析數:你想做什麼

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