是否有可能让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'
}
答案 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');
}
})
试试这个。