jQuery - 根据css类和链接名称单击链接

时间:2015-04-28 03:04:39

标签: javascript jquery html css

是否有可能让jQuery找到对象的文本,然后找到它之前的链接,然后单击它?我有这个例子,我希望jQuery点击下面两个链接中的任何一个:

<tr>
    <td nowrap="true" width="170" valign="top">
         <div class="float-left">
<b><a href="javascript:GoToETURL('/url-example-1.html','business');">1234 Account</a></b>
<br>
<span style="display:none" class="fullaccnum">1234</span>
         </div>
    </td>
</tr>

<tr>
    <td nowrap="true" width="170" valign="top">
        <div class="float-left">
<b><a href="javascript:GoToETURL('/url-example-2.html','business');">5678 Account</a></b>
<br>
<span style="display:none" class="fullaccnum">5678</span>
        </div>
    </td>
</tr>

这是我目前正在使用的jQuery并且它可以正常工作,但如果上面的帐户顺序排序不同,那么会发生错误,然后点击错误链接的错误链接:

if(account_id == '1234'){
    jQuery(".float-left b a")[0].click(); //click on first href
} else {
    jQuery(".float-left b a")[1].click(); //click on second href
}

因此jQuery可以做这样的事情:

if(account_id == '1234'){
    //find span class='fullaccnum' where span equals 1234
    //found match, go back up the tree and click href
    jQuery(".float-left b a").click();
    //goes to 'url-example-1.html'
} else {
    //find span class='fullaccnum' where span equals 5678
    //found match, go back up the tree and click href
    jQuery(".float-left b a").click();
    //goes to '/url-example-2.html'
}

5 个答案:

答案 0 :(得分:1)

尝试使用此功能

 function clickonanchor(text){
       $('tr').each(function(){
          var spantext = $(this).find('.fullaccnum').text();
          if (spantext == text){
               $(this).find('.float-left > b > a').click();
          }
       });    
    }

并使用它

clickonanchor('1234');

答案 1 :(得分:0)

如果跨度内的文字没有改变,你可以这样做,并且将是你给出的!!

{{1}}

答案 2 :(得分:0)

尝试使用jquery nearest()api,您将获得所需的结果。 下面是它的一小部分:

$('.fullaccnum').closest('b a').click()

答案 3 :(得分:0)

我假设account_id是自动生成的,或来自数据库或其他东西。以下是解决方案:

var account_id  = 1234;
$('.fullaccnum:contains("'+account_id+'")').closest('.float-left').find('a').click();

无论生成了多少个account_id,它都会使用:contains选择器找出匹配的元素。

答案 4 :(得分:0)

$(document).on('click','.float-left',function(){
    var account_id = $(this).find('a').text();
    if(account_id == '1234'){
   $(this).find('a').trigger('click'); 
 } else {
   $(this).parents('tr').next('tr').find('a').trigger('click');
 }
})

试试这个。