Выбор / проверка первого флажка в классе td? - PullRequest
0 голосов
/ 26 января 2019

В настоящее время я пытаюсь выяснить способ выбора первого флажка (я не совсем уверен, является ли он технически переключателем), который имеет следующий HTML-код на странице (http://www.swagbucks.com/polls):

<td class="pollCheckbox"></td>

Я использовал следующий код в попытке установить первый флажок из 4 на странице:

// ==UserScript==
// @name         SBPollSelectv2
// @version      1.0
// @description  Demonstration script to change form values
// @include      *
// @grant        none
// ==/UserScript==

var tds = document.getElementsByTagName("td");
for (var i = 0; i<tds.length; i++) {

  // If it currently has the pollCheckbox class
  if (tds[i].className == "pollCheckbox") {
    // Select first button
    document.getElementsByClassName("pollCheckbox")[0].checked = true;
  }
}

Я считаю, что последняя строка кода - это то, где лежит недостаток. Я могу выбрать все элементы TD по тегу, а затем попытаться отсортировать по классу. Затем мне нужно выбрать первый флажок с заданным классом. К сожалению, мой код не работает. Мне нужно выяснить, как выбрать первый элемент с именем класса, а затем установить этот флажок. Любая помощь будет потрясающей.

Ответы [ 2 ]

0 голосов
/ 26 января 2019

Элемент td - это просто ячейка таблицы. Проверенный круг появляется, добавляя класс «pollAnswerSelected» к элементу td с классом indivAnswerWrap. Вы можете использовать приведенный ниже код, чтобы установить первый флажок. Чтобы снять отметку, просто удалите класс pollAnswerSelected.

document.getElementsByClassName("indivAnswerWrap ")[0].classList.add("pollAnswerSelected")
0 голосов
/ 26 января 2019

Они на самом деле не являются флажками или переключателями - они <td> имеют стиль , выглядят как переключатели, поэтому назначение .checked не будет работать. Вместо этого позвоните click() на td, который вы хотите, и JS сайта сделает его проверенным:

document.querySelector('td.pollCheckbox').click();

Пользовательский скрипт, содержащий эту единственную строку кода, сделает первый тд выделенным.

Поскольку вы хотите выбрать только радиокнопку first td, циклы не нужны, вы можете просто использовать querySelector, чтобы вернуть первый элемент, соответствующий строке селектора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...