使用正则表达式的Jquery css选择器

时间:2010-09-23 18:00:56

标签: jquery regex css-selectors

我有 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>

由于没有唯一ID ,使用jquery,我希望能够将事件附加到“财务”标签链接(可能使用正则表达式选择器?)

链接的价值将始终为“财务”

4 个答案:

答案 0 :(得分:2)

使用:contains selector

选择<a>元素非常容易
var $financialsLink = $('#WebPartWPQ9').find('td.tab > a:contains(Financials)');

答案 1 :(得分:2)

$('#WebPartWPQ9 a:contains(Financials)')

答案 2 :(得分:2)

因为它是动态生成的,所以您可以use .live()处理DOM加载后创建的元素上的事件。

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

或者如果页面加载时#WebPartWPQ9存在,我可能会改为use .delegate()

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

这两个都使用the :contains selector来定位具有“财务”的那个。

答案 3 :(得分:1)

您可以使用:contains过滤器选择器和live方法,如下所示:

$('.tab a:contains("Financials")').live('click', function(){
  // your code...
});