2010-08-08 2 views
2

У меня вопрос,выбора полукокса в 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 я хотел бы выбрать последний символ из ид «shoppingLink». «1».

Они динамически добавлены, поэтому, если дело доходит до 10, оно должно автоматически выбирать последние 2 символа. Кто может мне помочь?

+0

Можете ли вы показать более подробно, что вы хотите сделать ? –

ответ

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') (т.е. «родителя с a» The .shoppingButton с id атрибута, где id начинается с "shoppingLink"). Затем он анализирует эти цифры на число с parseInt.

+0

это выглядит точно, что я ищу, однако регулярное выражение дает ошибку. firebug говорит: $ (this) .parent ("a"). attr ("id"). match (/ \ d + $ /) является нулевым – vincent

+0

обновление, мое плохое делает что-то wron, отлично работает сейчас – vincent

1

Почему вы не называть его shopping-link-1 или что-то подобное, и поставить shoppingButton класс на a тег вместо img? Таким образом, вы можете использовать метод split для получения числового идентификатора. Вот некоторые примеры 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 
}); 

Таким образом, он будет реагировать на щелчки на изображении, и по-прежнему тянуть ID из a тега.

0

Вы могли смотреть на него наоборот: вы знаете, ожидать строку «shoppingLink» так раздеться, что от первых затем разобрать номер:

$('a.shoppingButton').click(function() { 
    var theID = parseInt($(this).attr('id').replace('shoppingButton', '')); 
    theID = isNaN(theID) ? 0 : theID; 
    // actions here 
});​ 
Смежные вопросы