JQuery CSS селектор с использованием регулярных выражений - PullRequest
1 голос
/ 23 сентября 2010

У меня есть DYNAMICALLY сгенерированный навигационный div

<div id="WebPartWPQ9" >
 <table class="xm-ptabarea">
  <tbody>
   <tr>
    <td nowrap="" class="tab"><a href="/somelink.aspx">Overview</a></td>
    <td nowrap="" class="tab"><a href="/anothersomelink.aspx">Financials</a></td>
    <td nowrap="" class="tab"><a href="/somemorelink.aspx">Newsfeed</a></td>
   </tr>
  </tbody>
 </table>
</div>

Так как нет уникальных идентификаторов , с помощью jquery я хочу иметь возможность прикрепить событие к ссылке на вкладку "financial" (возможно, с помощью селекторов регулярных выражений?)

Значение ссылки всегда будет "Financials"

Ответы [ 4 ]

2 голосов
/ 23 сентября 2010
$('#WebPartWPQ9 a:contains(Financials)')
2 голосов
/ 23 сентября 2010

Поскольку он генерируется динамически, вы можете использовать .live() для обработки событий в элементах, созданных после загрузки DOM.

$('#WebPartWPQ9 td.tab a:contains(Financials)').live('click', function() {
    // run code
});

Или, если #WebPartWPQ9 присутствует при загрузке страницы, я бы, вероятно, использовал .delegate() вместо.

$('#WebPartWPQ9').delegate('td.tab a:contains(Financials)', 'click', function() {
    // run code
});

Оба они используют селектор :contains , чтобы нацелить его с помощью "Финансовых".

2 голосов
/ 23 сентября 2010

Очень просто выбрать этот элемент <a> с помощью селектора :contains :

var $financialsLink = $('#WebPartWPQ9').find('td.tab > a:contains(Financials)');
1 голос
/ 23 сентября 2010

Вы можете использовать селектор фильтра :contains и метод live следующим образом:

$('.tab a:contains("Financials")').live('click', function(){
  // your code...
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...