Я пытаюсь перейти по ссылке с помощью jquery. Кажется, что есть событие щелчка, которое воспроизводит «onclick» (то есть ввод пользователя). Можно ли использовать jquery, чтобы щелкнуть ссылку?

$ (- некоторый объект -). trigger ('click') должен помочь.
Работает, но вы можете просто сделать $ (object) .click ()
Я предпочитаю $ (- какой-то объект -). click () для удобочитаемости
Если передать методу click () функцию, она будет вести себя как привязка события onClick:
т.е. $ (- какой-то объект -). click (function () {-do stuff-})
Из вашего ответа:
$("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();
Обратите внимание, как это приведет к щелчку по всем ссылкам во второй ячейке таблицы второй строки таблицы во второй таблице на вашей странице. Если вы используете этот метод для перенаправления страницы на href объекта, следующий метод будет немного лучше:
document.location = $("table").eq(1).children("tr").eq(1).children('td').eq(1).children('a').attr('href');
Обратите внимание, как это установит местоположение документа на href первого a, найденного во второй ячейке таблицы второй строки таблицы, найденной во второй таблице на странице. Если вы хотите сопоставить первые элементы, используйте 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');
Спасибо, Пим. Я пытался воспроизвести поведение пользователя, но это хороший обходной путь. Большое спасибо.
Если вы собираетесь использовать этот ответ, вы должны принять его.
Он также не заполняет HTTP-реферер.
Попробуйте так:
$("table:first").find("tr:first").find("td:first").find("a:first").click();
Это вызовет событие onclick первого элемента a в первой ячейке первой строки в первой таблице ... и оно само по себе очень читабельно.
Я не хочу запускать событие onclick !!!!! Хочу программно щелкнуть по объекту !!! Эквивалент Javascript: window.document.getElementsByTagName ("таблица") [0] .rows [0] .cel ls [1] .children [0] .cl ick ();
"программно щелкнуть объект", что это значит, если не вызвать событие onclick для извлеченного элемента? вы хотите назначить функцию onclick, или?
$("table:first").find("tr:first").find("td:first").find("a:first")[0].click();
Это будет работать в Internet Explorer, если это ваша единственная цель, иначе вы застрянете с решением document.location.
Это успешно работает:
$(document).ready(function() {
$("#horizontalSlideButton").trigger('click');
});
Где horizontalSlideButton - это идентификатор ссылки, для которой нужно инициировать событие щелчка.
Как только DOM загружается, загружается содержимое $ (document) .ready (function () {}.
Пожалуйста, отметьте, если это поможет!
У меня была аналогичная проблема, и я обнаружил, что, создав поддельный объект события, а затем отправив его с помощью dispatchEvent (), очень красиво реплицировал щелчок пользователя:
var event = document.createEvent("HTMLEvents");
event.initEvent("click", true, true);
document.getElementById('myID').dispatchEvent(event);
Очевидно, что здесь не используется JQuery, но это может помочь в вашей задаче.
Я предпочитаю использовать живую функцию, например (для класса)
$(document).ready(function() {
$(".myclass").live('click', function(){//do something});
});
или для идентификатора
$(document).ready(function() {
$("#myid").live('click', function(){//do something});
});
Я использую класс span, чтобы стилизовать свою ссылку и присвоить ей класс или идентификатор, например
<span class = "link"><a href = "javascript:void(0);" target = "_new">my link/a></span>
Вы имеете в виду программную эмуляцию щелчка по ссылке?