如何获取以子字符串开头的所有elementID

时间:2017-04-08 16:20:17

标签: javascript html getelementbyid

我有这段代码:

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以&#39; product&#39;开头,但&#39; *&#39;不会&#39;为我工作......)

var node = document.getElementById("product"*);

(And some unnecessary event listeners...)

现在我的问题是:如何获取所有以&#39; product&#39;开头的元素ID

5 个答案:

答案 0 :(得分:5)

Attribute Selectors将提供您正在寻找的内容。它们与git reset HEAD~2 --harddocument.querySelectorAll一起使用。

在您的情况下,您可以指定以product:

开头的属性ID
document.querySelector

工作示例:

&#13;
&#13;
var nodes = document.querySelectorAll('[id^=product]');
&#13;
var nodes = document.querySelectorAll('[id^=product]');

console.log(nodes);
&#13;
&#13;
&#13;

答案 1 :(得分:1)

你那里有伪代码; "product"*是一个解析错误。

您需要通过querySelectorAll使用选择器。

document.querySelectorAll('[id^="product"]');

这将返回nodelist,然后您可以迭代并执行您的操作。

答案 2 :(得分:0)

您不需要为每个div提供唯一ID。只需向他们class="product"提出并使用document.querySelectorAll('.product')

即可

答案 3 :(得分:0)

我测试了这段代码并获得了理想的结果

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>

答案 4 :(得分:0)

也是这样!

&#13;
&#13;
var IDs = [];

$("#list").find("div").each(function(){

if(this.id.includes('product')){
IDs.push(this.id); 
}

});

console.log(IDs);
&#13;
<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>
&#13;
&#13;
&#13;