Я разрабатываю расширение Chrome для управления элементами HTML. У меня небольшая проблема. Элемент, которым я хочу манипулировать, не имеет идентификатора или имени класса, например:
<div style = "width: 400px">
Я хочу манипулировать шириной. Но в теге div нет идентификатора. Как я могу манипулировать этим тегом с помощью javascript DOM?
Отвечает ли это на ваш вопрос? Как получить элемент без id элемента?
Возможный дубликат stackoverflow.com/questions/2332061/…
@HereticMonkey Я попробовал ваше предложение. Я назначаю его переменной и пытаюсь манипулировать шириной с помощью атрибута style
, но это не работает. Как управлять шириной? let x = document.querySelector('div[style = "width: 400px"]'); x.style.width = "500px"
Я получил сообщение об ошибке > "Uncaught TypeError: Не удается прочитать свойство 'style' из null"
Вы можете использовать querySelector.
Вот простой пример:
//adjust selector to target your div (more info in docs)
var div = document.querySelector('div[style = "width: 100px; background-color: green"]')
//change this width to your preference
div.style.width = "700px"
<!-- This is my condition -->
<div class = "wrap">
<div style = "width: 100px; background-color: green">
<h1 class = "h1">
Hello World
</h1>
</div>
</div>
Это позволит получить первый элемент div
на странице. Если есть какие-либо другие div
перед тем, на который ОП хочет нацелиться в источнике, они не получат желаемого результата.
Правильно, я полностью с вами согласен. Это всего лишь простой пример. OP может использовать селектор по своему усмотрению, поэтому я включил ссылку на документы. В нынешнем виде OP не указал дополнительные элементы div в своем вопросе, но я могу обновить это, если в вопросе содержится информация о дополнительных элементах div.
Что делать, если на веб-странице несколько div
?
Затем вы настраиваете свой селектор так, чтобы он более точно нацеливался на div, которым вы хотите манипулировать. Как объяснил @HereticMonkey в своем комментарии к OP, document.querySelector('div[style = "width: 400px"]')
нацелился бы на этот div более конкретно, если бы это был не единственный div на веб-странице. - Я еще раз скажу, OP никогда не упоминал несколько div. Ссылка на документацию также была предоставлена в случае, если это было правдой. Мой ответ не делал никаких предположений и давал информацию о методе querySelector
, который является лишь одним из многих способов достижения этого.
@AibCodesDaily работает, если у меня есть только один div. Но это не работает, если раньше у меня был другой div. Проверьте эту ссылку, это мое условие (jsfiddle.net/ys6wbLo7/1)
Есть много способов.
document.querySelector('div[style = "width: 400px"]')
один. Если вы покажете больше окружающего документа, могут быть лучшие способы.