以下函数按text
搜索元素:
function findElementsByText(selectors, text) {
if (text === '') return []
const regex = new RegExp(text)
const elements = [...document.querySelectorAll(selectors)]
return elements.filter((element) => {
return element.textContent.match(regex)
})
}
const selectors = 'a'
const text = ''
const foundElements = findElementsByText(selectors, text)
console.log(foundElements)
<a></a>
<a>Text</a>
如您所见,如果text
为空,我将返回[]
。如果没有这一行,该函数将匹配所有a
标记。
我想知道是否有一种方法可以告诉regex:匹配text
,但如果regex为空则不匹配。这样我就可以去掉if语句。或者使用if语句是最好的选择?
我会这样做。
if (!text) return
const text;