Javascript 禁用ID属性以开头的所有按钮

Javascript 禁用ID属性以开头的所有按钮,javascript,Javascript,我有一张有桌子的表格。该表列出了多行,每行都有一个“创建”按钮。表本身使用for循环,并将行值附加到按钮ID的末尾,如下所示 <button type="button" class="btn btn-default" id="create_<%: stck.Stock%>" onclick="SetupDisinvestmentsFields(this,'<%=stck.SEDOL%>','<%=stck.Quantity%>','<%=stck.

我有一张有桌子的表格。该表列出了多行,每行都有一个“创建”按钮。表本身使用
for
循环,并将行值附加到按钮ID的末尾,如下所示

<button type="button" class="btn btn-default" id="create_<%: stck.Stock%>" onclick="SetupDisinvestmentsFields(this,'<%=stck.SEDOL%>','<%=stck.Quantity%>','<%=stck.value%>')">
     <span class="glyphicon glyphicon-plus"></span> Create
</button>

document.querySelector
仅返回第一个匹配的元素。您需要改为使用
document.querySelectorAll
,然后循环遍历生成的节点列表:

var elems = document.querySelectorAll('[id^="create_"]');

for (var i = 0; i < elems.length; i++) {
    elems[i].disabled = true;
}
var elems=document.querySelectorAll('[id^=“create_”]');
对于(变量i=0;i
使用
querySelectorAll
进行
循环(请注意
querySelectorAll
返回节点列表,您必须使用
.item(i)
i
位置检索项目)。纯JS不是jQuery,所以您必须将其应用于每个元素,您可以;对于QuerySelector,建议我们
elems.item(i)
以非活动节点列表()的形式检索实际项目()@something据我所知,仅建议使用
item()
方法来避免
i
以越界索引为目标。在这种情况下,我认为这无关紧要,因为我们正在预先确定节点列表的长度。编辑:事实上,这正是你链接的页面所说的:“可以作为简单访问节点列表[idx]的替代方法(当idx超出边界时,它返回undefined)”。Hmmm。我会在安全方面犯错,但是是的,很好。只是提到它。出于完整性考虑,因为问题明确提到了它:document.querySelectorAll('button[id^=“create”]”)
document.querySelector('[id^="create_"]').disabled = true;
var elems = document.querySelectorAll('[id^="create_"]');

for (var i = 0; i < elems.length; i++) {
    elems[i].disabled = true;
}