[英]How to get all elementIDs that begin with a substring
我有這個代碼:
HTML:
<div class="lists">
<div class="list 1">
<div id="productCheese">Cheese</div>
<div id="productBread">Bread</div>
<div id="productMilk">Milk</div>
<div id="productEgg">Egg</div>
<div id="addProduct">Add new product to list...</div>
</div>
<div class="list 2">
etc...
</div>
</div>
和 JavaScript:(我想獲取 ID 以“product”開頭的所有元素,但“*”對我不起作用......)
var node = document.getElementById("product"*);
(And some unnecessary event listeners...)
現在我的問題是:如何獲取所有以“product”開頭的 elementID ?
屬性選擇器將提供您正在尋找的內容。 它們與document.querySelector
和document.querySelectorAll
。
在您的情況下,您可以指定以 product 開頭的屬性 id:
var nodes = document.querySelectorAll('[id^=product]');
工作示例:
var nodes = document.querySelectorAll('[id^=product]'); console.log(nodes);
<div class="lists"> <div class="list 1"> <div id="productCheese">Cheese</div> <div id="productBread">Bread</div> <div id="productMilk">Milk</div> <div id="productEgg">Egg</div> <div id="addProduct">Add new product to list...</div> </div> <div class="list 2"> etc... </div> </div>
好吧,你有偽代碼; "product"*
是解析錯誤。
您需要通過querySelectorAll
使用選擇器。
document.querySelectorAll('[id^="product"]');
這將返回一個nodelist ,然后您可以對其進行迭代並按照您的意願進行操作。
您不需要為每個 div 提供唯一的 id。 只需給他們class="product"
並使用document.querySelectorAll('.product')
我已經測試了這段代碼並得到了理想的結果
var matches = []; var searchEles = document.getElementById("listone").children; for(var i = 0; i < searchEles.length; i++) { if(searchEles[i].id.includes('product')){ matches[i]=searchEles[i]; } } console.log(matches);
<div class="lists"> <div class="list 1" id="listone"> <div id="productCheese">Cheese</div> <div id="productBread">Bread</div> <div id="productMilk">Milk</div> <div id="productEgg">Egg</div> <div id="addProduct">Add new product to list...</div> </div> <div class="list 2"> etc... </div> </div>
也用那種方式!
var IDs = []; $("#list").find("div").each(function(){ if(this.id.includes('product')){ IDs.push(this.id); } }); console.log(IDs);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="lists" id="list"> <div class="list 1" id="listone"> <div id="productCheese">Cheese</div> <div id="productBread">Bread</div> <div id="productMilk">Milk</div> <div id="productEgg">Egg</div> <div id="addProduct">Add new product to list...</div> </div> <div class="list 2" id="listtwo"> <div id="productCheese">Cheese</div> <div id="productewqewewew">Bread</div> <div id="productrerereilk</div> <div id="producttrtytrut">Egg</div> <div id="addProductccc">Add new product to list...</div> </div> </div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.