Попытка щелкнуть ссылку <a>с помощью JQuery, но у тега нет дескрипторов. - PullRequest
1 голос
/ 24 октября 2019

Я хотел бы нажать на ссылку на веб-сайте http://www.furaffinity.net/view/33063264/, но элемент <a> не имеет описательных факторов, поэтому я не знаю, как его правильно найти. Это может быть дубликатом моего другого вопроса, но это будет более наглядно и лучше организовано. JSFiddle: https://jsfiddle.net/60obtL8v/

Я попытался использовать JQuery, чтобы найти элемент без удачи. Я не знаю, был ли мой код неправильным или нет. Я удалил код и хотел бы найти его снова, но не смог.

Мой JS-скрипт:

// ==UserScript==
// @name         Say "Very Nice!"
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Say "Very Nice" on a post by clicking the button.
// @author       You
// @match        https://www.furaffinity.net/view/*
// @match        http://www.furaffinity.net/view/*
// @match        www.furaffinity.net/view/*
// @grant        none
// ==/UserScript==
    function addButton(text, onclick, cssObj) {
        cssObj = cssObj || {position: 'absolute', bottom: '15%', left:'4%', 'z-index': 3}
        let button = document.createElement('button'), btnStyle = button.style
        document.body.appendChild(button)
        button.innerHTML = text
        button.onclick = onclick
        Object.keys(cssObj).forEach(key => btnStyle[key] = cssObj[key])
        return button
    }

(function(){
    'use strict'

  window.addEventListener('load', () => {
    addButton('Very Nice!', gfg_Run)
    })

      var el_down = document.getElementById("JSMessage");
        var inputF = document.getElementById("JSMessage");
    var yeet = document.getElementsByClassName('button');
    var inputH = document.getElementsByTagName("a");
     function gfg_Run() {
            inputF.value = "Very Nice!";
            el_down.innerHTML =
                   "Value = " + "'" + inputF.value + "'";
         yeet[0].click();
                inputH.click();
          }
}())

Мои ожидаемые результаты: я могу нажать натег <a>, нажав на кнопку в другом месте на странице. Я понятия не имею, как бы я мог найти элемент, так как он находится под элементом <div> и <b>.

Пример того, как выглядит HTML страницы:

<div class="alt1 actions aligncenter" style="margin-top: 8px;">

  This is what i would like to click right here. --->
  <b><a href="/fav/33151503/?key=37dfe6a83f38f48790a6551921ddb13850e2c6a0">+Add to Favorites</a></b> |
  <b><a href="//d.facdn.net/art/legacy2988/stories/1569252982/1569252982.legacy2988_i’m_not_sure_atm.txt">Download</a></b> |
  <b><a href="/full/33151503/">Full View</a></b> | <b><a href="/newpm/legacy2988/">Send note</a></b>


  <div>Submission &copy; 2019 Legacy2988</div>
</div>

Надеюсь, я правильно структурировал этот вопрос.

1 Ответ

1 голос
/ 24 октября 2019

Код выглядит как чистый JS, но в jQuery вы можете использовать селектор атрибутов, чтобы выбрать href и выполнить действие:

jQuery('a[@href*=/fav/33151503/?key=37dfe6a83f38f48790a6551921ddb13850e2c6a0]');

ИЛИ

$('a[@href*=/fav/33151503/?key=37dfe6a83f38f48790a6551921ddb13850e2c6a0]');
...