[英]Adding OR clause to document.querySelectorAll
我正面臨着此鏈接中描述的相同場景。 解決方案也是可以接受的,但在最壞的情況下變得乏味。 例如,我正在嘗試將該技術應用於以下概念場景:
<input id="txtXMLS01" />
<input id="txtXMLS02" />
<input id="txtXMLS03" />
.
.
.
<input id="txtXMLS100" />
<input id="txtXMLM01" />
<input id="txtXMLM02" />
<input id="txtXMLM03" />
.
.
.
<input id="txtXMLM100" />
<input id="txtSVGS01" />
<input id="txtSVGS02" />
<input id="txtSVGS03" />
.
.
.
<input id="txtSVGS100" />
<input id="txtSVGM01" />
<input id="txtSVGM02" />
<input id="txtSVGM03" />
.
.
.
<input id="txtSVGM100" />
是否有任何其他類似於以下代碼段的技術
<script type="text/javascript">
var textBox=document.querySelectorAll("input[id^=txt(XML|SVG)[S|M|L](\d)*]")
</script>
添加[1]:我的目標是僅提取具有以下模式的節點: txtXMLS*
txtXMLM*
txtSVGS*
txtSVGM*
。 為什么我是特定的,因為在同一頁面中有其他以txt
開頭的文本框
您可以使用帶有regex
filter
var textBoxes = Array.from( document.querySelectorAll("input[id]" ) ).filter( s => !!s.id.match( /txt(XML|SVG)[S|M|L](\d)*/ );
說明
Array.from
會將document.querySelectorAll("input[id]" )
的輸出轉換為數組
filter
將根據作為regex傳遞的條件從array.from
過濾結果數組
!!s.id.match( /txt(XML|SVG)[S|M|L](\\d)*/
將匹配結果轉換為等效的布爾值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.