我尝试使用正则表达式来查找所有索引ID为“ modal [index]”的元素 像这样
$("input[id=modal[\[0-9\+]]").attr("disabled", "false");
出现此错误
未捕获的错误:语法错误,无法识别的表达式: 输入[id = modal [[0-9 +]]
并尝试使用for循环,但发生了相同的错误
for(var j=1;j<11;j++)
$("input[id=modal["+j+"]]").attr("disabled", "false");
如何找到这些元素?
答案 0 :(得分:0)
var regix =新的RegExp([0-9 +]); 进一步了解其功能,例如.test等
答案 1 :(得分:0)
如果您的ID类似于 modal [1] , modal [2] ,则:
for(var j=1;j<11;j++) {
$("input#modal["+j+"]").attr("disabled", "false");
}
答案 2 :(得分:0)
您可以使用JQuery的filter function,下面的示例将为您工作。 source
$('input')
.filter(function() {
return this.id.match('\[0-9\+]');
}).attr("disabled", "false");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="modal[8]" value="this textbox will disabled"/>
<input type="text" id="modal[a]" value="this will not"/>
,如果要使用for循环实现此功能,请考虑以下示例。
我对您的for循环所做的更改很少
for(var
j=0
; j <$("input[type='text']").length
; j ++)$(“ input [id =
'modal["+j+"]'
]”)
for(var j=0;j<$("input[type='text']").length;j++)
$("input[id='modal["+j+"]']").attr("disabled", "false");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="modal[0]" value="this textbox will disabled"/>
<input type="text" id="modal[1]" value="this will not"/>
答案 3 :(得分:0)
对我有用的解决方案是使用CSS选择器从输入属性中删除禁用的属性,而无需像这样使用regex
$('input[id^=modal]').removeAttr("disabled");
谢谢大家的回答