Я пытаюсь установить общий элемент, невидимый по атрибуту, и в одной строке javascript

Я ограничен одной строкой из-за расширения Chrome, и это единственное, что соответствует моим потребностям.

<td> необходимо пройти через атрибут «Имя пользователя», чтобы определить, должен ли заблокированный пользователь быть невидимым.

Я не могу понять это, и я действительно нуб, когда дело доходит до Javascript (не мой язык)

Я пробовал display:nonehidden и style.visibility = "hidden".

Я пробовал w3Schools и искал на страницах Javascript и HTML, как это сделать, и хотя у меня есть код, который работает, это скрипт, который занимает около 8 строк, но не работает. Возможно, мне придется бросить его, но я решил, что я дал ему последний шанс.

document.getElementsByTagName("td")[0].getAttribute("theUserName").value("madmax").style.visible = "hidden";

Ожидается - <td> не должен отображаться Результаты - это видно

Вы просто не можете выполнить это с помощью одного оператора, потому что доступ к свойству не возвращает ссылку на элемент DOM для доступа ко второму свойству (цепочка). Кроме того, у атрибутов нет свойства .value, и даже если бы они были, value — это свойство, а не метод, поэтому он не может принимать аргумент. Кроме того, элементы td не имеют атрибута theUserName. В том, что ты здесь делаешь, так много неправильного.

Scott Marcus 25.07.2019 20:04

Блин, и спасибо за редактирование. Вы можете сделать это в два? Расширение не любит переменные, но я могу попробовать — это Codify — The Code Adder.

Little John 25.07.2019 20:07

Не имеет смысла, что вы ограничены только одной строкой

charlietfl 25.07.2019 20:07

Покажите нам образец HTML-кода, к которому вы обращаетесь с помощью этого кода, и объясните, что вам нужно сделать.

Scott Marcus 25.07.2019 20:08

И да - я знаю, это ужасно. Но я изо всех сил стараюсь разобраться с кучей некодеров.

Little John 25.07.2019 20:08
document.getElementsByTagName("td")[0]это просто плохая идея ... всегда. Вместо этого используйте document.querySelector("td").
Scott Marcus 25.07.2019 20:11

Попробую, Скотт :)

Little John 25.07.2019 20:34

<td class = "userNameClass" theusername = "TROLLNAMEHERE" category = "11" style = "cursor:pointer;"><span style = "font-weight:bold;color:#8899aa;">имя</span>< /тд>

Little John 25.07.2019 20:35

Charlietfl - Мол, можно и больше, но код отсюда не работает в расширении. Очевидно, у него были претензии. Альтернативой может быть Java-Injector, но, очевидно, я неопытен в javascript, если предположить, что java на самом деле не означает Java.

Little John 25.07.2019 20:42
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
9
128
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Одна строка, чтобы скрыть содержимое:

[...document.querySelectorAll("td[theUserName=madmax]")].forEach(e=>e.style.display = 'none');

Чтобы удалить <td>:

[...document.querySelectorAll("td[theUserName=madmax]")].forEach(e=>e.remove());

Пробую этот сейчас

Little John 25.07.2019 20:59

Эта линия выглядит очень мило. Но Codify — это боль. Я возьму вышеизложенное, попробую с другим редактором и напишу разработчику. Большое спасибо всем вам! Особенно ты, Эмеус.

Little John 25.07.2019 21:04

Я предполагаю, что вы перебираете все элементы <td>, чтобы найти один с атрибутом theUserName со значением madmax, а затем делаете этот элемент невидимым. Этого можно достичь с помощью:

for(TdElement of document.getElementsByTagName("td")) {
  if (TdElement.getAttribute("theUserName") == "madmax") {
    TdElement.style.visiblity = "hidden";
  }
}

В сокращении до одной строки это:

for(TdElement of document.getElementsByTagName("td")) if TdElement.getAttribute("theUserName") == "madmax") TdElement.style.visiblity = "hidden"

Не рекомендуется опускать {}, это просто приглашение для ошибок.

Scott Marcus 25.07.2019 20:19

Хорошая точка зрения. Ответ, предоставленный @Emeeus, также гораздо более лаконичен.

Ian 25.07.2019 20:47

Какие ошибки? Советую использовать решение Emeeus, оно чище моего.

Ian 25.07.2019 20:54

Спасибо за старания, ребята! StackOverflow всегда был отличным местом для хороших советов.

Little John 25.07.2019 21:05

Другие вопросы по теме