有jQuery Click方法吗?
我正在尝试使用jquery单击链接。 似乎只有一个点击事件复制“onclick”(即用户输入)。 是否可以使用jquery实际点击链接?
从你的答案:
$("a[0]")
不是有效的选择器。 获取页面上的第一个a使用:
$("a:first")
要么
$("a").eq(0).
那么对于你的回答中的选择器:
$("table[1]/tr[1]/td[1]/a").trigger('click');
写
$("table").eq(1).children("tr").eq(1).children('td').eq(1).children('a').click();
请注意这将如何单击页面上第二个表中第二个表行的第二个表格单元格中的所有链接。
如果您使用此方法将页面重定向到a的href,则以下方法稍微好一些:
document.location = $("table").eq(1).children("tr").eq(1).children('td').eq(1).children('a').attr('href');
请注意这将如何将文档位置设置为页面上第二个表中找到的第二个表行的第二个表格单元格中找到的第一个文件的href。
如果要匹配第一个元素,请使用eq(0)而不是eq(1)。
编辑
如果你真的想这样做1337-haxxor
$("table:eq(1) > tr:eq(1) > td:eq(1) > a").click();
但是我觉得另一种方法更容易理解。
编辑
好的,从你的下一个回答/问题thingie
如何实际不点击链接,只是将document.location字符串设置为它:
document.location = $("table").eq(0).children("tr").eq(0).children('td').eq(0).children('a').eq(0).attr('href');
我更喜欢$( – 一些对象 – )。click()以提高可读性
如果您将click()方法传递给函数,它的行为类似于onClick事件绑定:
即$( – 某个对象 – )。click(function(){-do stuff-})
$( – 某个对象 – )。触发器(’click’)应该可以解决问题。
这成功:
$(document).ready(function() { $("#horizontalSlideButton").trigger('click'); });
其中horizontalSlideButton是您要为其触发click事件的链接的ID。
加载DOM后,将加载$(document).ready(function(){}的内容。
请注明这是否有帮助!
我有一个类似的问题,发现通过创建一个假的事件对象,然后使用dispatchEvent()调度它,用户点击非常好:
var event = document.createEvent("HTMLEvents"); event.initEvent("click", true, true); document.getElementById('myID').dispatchEvent(event);
显然这不是使用JQuery,但它可能对您的任务有所帮助。
$("table:first").find("tr:first").find("td:first").find("a:first")[0].click();
如果这是您唯一的目标,这将在Internet Explorer中有效,否则您将无法使用document.location解决方案。
试试这种方式:
$("table:first").find("tr:first").find("td:first").find("a:first").click();
这将触发第一个表中第一行的第一个单元格中的第一个a的onclick事件……并且它本身非常易读。
我更喜欢使用live函数,例如(对于一个类)
$(document).ready(function() { $(".myclass").live('click', function(){//do something}); });
或者是身份证
$(document).ready(function() { $("#myid").live('click', function(){//do something}); });
我使用span类来设置我的链接样式并给它一个类或id
my link/a>