j在 for 循环中查询多个变量

jQuery multiple variables in for loops

本文关键字:变量 查询 for 循环      更新时间:2023-09-26

这可能是一件简单的事情,但就是想不通。

假设我有五十个类似的函数,其中有两个:

var unit = ['red', 'pink']
var unit2 = ['red2', 'red2']
$('#red').click(function() {
if($('#red2').is(':hidden')) {
$('#red2').toggle();
} else {
$('#red2').toggle();}}}

$('#pink').click(function() {
if($('#pink2').is(':hidden')) {
$('#pink2').toggle();
} else {
$('#pink').toggle();}}}

我想在一个/两个 for 循环中添加所有这些函数。我试过这个:

for (var i = 0; i < unit.length; i++) {
for (var y = 0; y < unit2.length; y++) {
$('#i').click(function() {
if($('#y').is(':hidden')) {
$('#y').toggle();
} else {
$('#y').toggle();}}}}

.toggle()方法检测元素本身的可见性,无需使用if语句,您可以使用this关键字来引用单击的元素:

$('#red, #pink').on('click', function() {
   // Based on the id property of the clicked element 
   // this selects #red2 or #pink2 element
   $('#' + this.id + '2').toggle();
});

另请注意,$('#i')选择ID 为 i 的元素,则应连接字符串:

$('#' + i).foo();

你应该连接字符串:

for (var i = 0; i < unit.length; i++) {
  $('#' + unit[i])
  .attr('data-dst', unit2[i])
  .click(function() {
    var dst = $(this).attr('data-dst');
    $('#' + dst).toogle();
  }
}