使用 jQuery 收集所有没有特定类的“可见”表单元素的最佳方法?

2024-01-18

我正在尝试在给定表单上重新分配新的选项卡索引。为此,我想排除任何不可见(不可见)的表单元素,并且还排除拥有特定类(“.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++;
        }
    });
};

有任何想法吗?


您可以使用:visible http://api.jquery.com/visible-selector/选择器和:input http://api.jquery.com/input-selector/, 像这样:

function reassignTabOrders() {
  $j(':input:visible:not(.offscreen)').each(function(i) {
     this.tabIndex = i+1;
  });
}

这也使用了提供的索引.each() http://api.jquery.com/each/函数到回调,不需要自己维护一个单独的变量:)在更高的 jQuery 版本中,你可以使用一个函数来缩短它(但不是那么快).attr() http://api.jquery.com/attr/, 像这样:

function reassignTabOrders() {
  $j(':input:visible:not(.offscreen)').attr("tabindex", function(i) {
    return i+1;
  });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 jQuery 收集所有没有特定类的“可见”表单元素的最佳方法? 的相关文章

随机推荐