Проверьте nodeType для Изображения / Alt Атрибут - PullRequest
3 голосов
/ 22 февраля 2020

Я получил рекурсивную функцию, которая проходит через все HTML дочерние узлы.

Есть ли простой способ проверить, является ли текущий элемент изображением с element.nodeType? Так что я мог бы использовать DOM для этого элемента.

Вот пример кода:

`

replaceText(document.body)

function replaceText(element){
    if(element.hasChildNodes()){
        element.childNodes.forEach(replaceText)
    } else if(element.nodeType === Text.TEXT_NODE){
//Do Something
}

`

Точно так же, как и для картинок и особенно для картинок alt attribute.

1 Ответ

2 голосов
/ 22 февраля 2020

Просто используйте свойство nodeName элемента, чтобы проверить, является ли оно изображением ("IMG"), если вы уверены, что это не текстовый узел.

replaceText(document.body)

function replaceText(element){
    if(element.hasChildNodes()){
        element.childNodes.forEach(replaceText)
    } else if(element.nodeType === Node.TEXT_NODE){
      console.log("Text Found! textContent: ",element.textContent)
    }
    else if(element.nodeName = "IMG"){
      console.log("Image Found! Alt: ",element.alt)
    }
}
<html>
<body>
<p>this is text</p>
<div>this is an element</div>
<img src="https://placehold.it/22" alt="i am an image">
</body>
</html>

Чтобы получить свойство alt изображения, просто используйте element.alt в своем коде.


, чтобы удалить Если текст в нем соответствует регулярному выражению, просто протестируйте каждое свойство, которое вы хотите проверить:

function replaceText(element){
    if(element.hasChildNodes()){
        element.childNodes.forEach(replaceText)
    } else if(element.nodeType === Node.TEXT_NODE){
      //console.log("Text Found! textContent: ",element.textContent)
    }
    else if(element.nodeName = "IMG"){
      console.log("Image Found! Alt: ",element.alt)
      let re = /Wendler/gi
      if((element.alt != undefined &&element.alt.match(re)) || (element.src != undefined &&element.src.match(re)) || (element.title != undefined &&element.title.match(re))){ 
        element.remove()
      }
    }
}
image
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...