我有一个复杂的Javascript应用程序,根据应用程序状态和只读权限填充按钮:
但基本上按钮在添加到文档时看起来像这样:
<button type="button" id="..." class="btn btn-link btn-table-action btn-table-add-row" title="Add"></button>
id是自动生成的,之前不知道。除此之外,我们还有几个按钮,需要同时禁用/启用它们。
我试了以下但没有运气:
$(".btn-table-add-row").prop('disabled', true);
setInterval(function() {
$(".btn-table-add-row").prop('disabled', true);
}, 1000);
var elems = document.getElementsByClassName("btn-table-add-row");
console.log(elems);
for(var i = 0; i < elems.length; i++) {
elems[i].disabled = true;
}
上面的示例都是在加载文档并且按钮可见之后在页面加载上尝试的。我能够在最后一个例子中阅读elems列表,但它们不会禁用。有什么建议吗?
答案 0 :(得分:1)
我创建了一个小提琴http://jsfiddle.net/mfleshman/yR9U3/
<button type="button" class="btn btn-link btn-table-action btn-table-add-row" title="Add">test</button>
<button type="button" class="btn btn-link btn-table-action btn-table-add-hide" title="Add">test</button>
$(".btn-table-add-row").prop('disabled', true);
$(".btn-table-add-hide").hide();
你说按钮是&#34;可见&#34;。禁用按钮不会将其隐藏在页面中,除非您有其他CSS选择器执行此操作。
如果您试图隐藏按钮,则需要在元素上调用.hide()。
答案 1 :(得分:0)
正如Satpal和你自己提到的那样,代码是正确的(至少我试过的第一句话),所以问题将是按照创建按钮的顺序,或者可能是在执行其他按钮时出错JS代码会导致您无法运行。
我还为此创建了一个小提琴,您的代码正在运行:http://jsfiddle.net/gx7zC/
$(document).ready(function(){
var btnAmount = Math.floor((Math.random() * 10) + 1);
for(var i=0; i<btnAmount;i++){
var newButton = document.createElement("button");
$(newButton).addClass("btn btn-link btn-table-action btn-table-add-row");
newButton.id = "btn"+i;
$(newButton).text("btn"+i);
document.body.appendChild(newButton);
}
$(".btn-table-add-row").prop('disabled', true);
});