1

我有:

var row = 22;

如何设置它,以便禁用所有具有 ID 的输入和选择元素,其中 XXX 可以是任意字符组合:

modal_XXX_22 
4

5 回答 5

2

这就是您选择它们​​的方式:

$('[id^="modal_"][id$="_' + row + '"]').
于 2012-08-21T04:19:41.867 回答
1

您可以尝试Multiple Attribute选择器:

$('*[id^="modal_"][id$="_'+row+'"]').prop('disabled', true)
// ^-  ^--           ^--- attribute ends with selector
//  |    |     
//  |    --- attribute starts with selector 
//  ---- all selector     
  1. 所有选择器
  2. 属性以选择器开头
  3. 属性以选择器结尾
于 2012-08-21T04:20:45.363 回答
0

尝试:

$(':input[id^="modal_"][id*="_'+ row +'_"]')

尽管更好的 HTML 设置是单元素包装输入。

于 2012-08-21T04:19:35.317 回答
0

您可以遍历所有子项并检查 id 是否包含您想要的字符串。像这样:

$(document).ready(function(){
    $('ul').children().each(function(){
        var id = $(this).attr('id');
        if (typeof(id) !== 'undefined') {
            if (id.indexOf('22') != -1) {
                $(this).css('color','red');
            }
        }
    });

});​

如果您希望它在整个文件上运行,您可以将其更改为

$('body').children()...

现场演示

于 2012-08-21T04:21:35.080 回答
0
$('input[id^="modal_"][id$="_'+N+'"],select[id^="modal_"][id$="_'+N+'"]')
.attr('disabled','disabled');
于 2012-08-21T04:30:34.733 回答