以下函数按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
标签。
我想知道是否有办法告诉正则表达式:匹配text
,但如果正则表达式为空则不匹配。这样我就可以删除if语句。或者,拥有if语句是最好的选择?
1条答案
按热度按时间flvlnr441#
我也会这么做。