我正在尝试在给定表单上重新分配新的制表符索引。为此,我想排除任何不可见(不可见)的表单元素 - 并排除任何具有特定类(“.offscreen”)的表单元素。
我正在尝试这种方法 - 但是,它不起作用(也许不是最有效的方法)。
function reassignTabOrders() {
var tabindex = 1;
$j('input,select,textarea').not('.offscreen').each(function() {
var $input = $j(this);
if ($input.is(':visible')) {
$input.attr("tabindex", tabindex);
tabindex++;
}
});
};
有什么想法吗?
答案 0 :(得分:10)
function reassignTabOrders() {
$j(':input:visible:not(.offscreen)').each(function(i) {
this.tabIndex = i+1;
});
}
这也使用.each()
函数提供的索引来回调,不需要自己维护一个单独的变量:)在以后的jQuery版本中你可以使用函数缩短它(但不是那么快)使用.attr()
,就像这样:
function reassignTabOrders() {
$j(':input:visible:not(.offscreen)').attr("tabindex", function(i) {
return i+1;
});
}