我有这个很棒的javascript,会自动使用数字填充页面上所有文本框的值,从1开始然后再增加。
function editTextBoxes() {
var textboxs = $('input:text');
for (i = 0; i <= textboxs.length; i++) {
$('input:text:eq(' + i + ')').val(i + 1);
}
}
但是,我只想填写ID 包含 txtSortOrder
的文本框有人可以帮我修一下这句话:(这只是一个猜测)
if ($('input:text:eq(' + i + ')').ID.Contains("txtSortOrder")
答案 0 :(得分:3)
您可以使用attr
功能提取任何属性。对于Contains()
,您可以使用indexOf
,如果找不到搜索,则会返回-1
。
所以这给我们带来了这么远:
if ($('input:text:eq(' + i + ')').attr('id').indexOf("txtSortOrder") !== -1)
现在,对于您的迭代,您实际上可以使用each
来处理查询结果。
E.g。
function editTextBoxes() {
$('input:text[id~=txtSortOrder]').each(function (index) {
$(this).val(index + 1);
});
}
请注意,这会将您的选择器扩展为使用Attribute Contains word Selector:input:text[id~=txtSortOrder]
这意味着您无需手动进行ID比较
答案 1 :(得分:1)
代码:
function editTextBoxes() {
// it will select all textboxes which id contain txtSortOrder
var textboxs = $('input:text').filter(function(){
this.id.indexOf("txtSortOrder") !== -1;
});
for (i = 0; i <= textboxs.length; i++) {
$('input:text:eq(' + i + ')').val(i + 1);
}
}