Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将查询参数与单击操作的选择器类进行比较_Javascript_Jquery - Fatal编程技术网

Javascript 将查询参数与单击操作的选择器类进行比较

Javascript 将查询参数与单击操作的选择器类进行比较,javascript,jquery,Javascript,Jquery,我有一个div列表,单击每个div将显示另一个div。我当前有一个脚本,该脚本将接受查询参数值(例如:http://domain.com/?id=1),去掉id的值,并使用该值以该数字作为一个类触发相应的div。我目前的做法是: var param = window.location.search.split('?id=')[1]; if(param == 1){ $(".1").click(); } else if(param == 2){ $(".2").clic

我有一个div列表,单击每个div将显示另一个div。我当前有一个脚本,该脚本将接受查询参数值
(例如:http://domain.com/?id=1)
,去掉
id
的值,并使用该值以该数字作为一个类触发相应的div。我目前的做法是:

var param = window.location.search.split('?id=')[1];
  if(param == 1){
    $(".1").click();
  }
  else if(param == 2){
    $(".2").click();
  }
  else if(param == 3){
    $(".3").click();
  }
  else if(param == 4){
    $(".4").click();
  }
  else if(param == 5){
    $(".5").click();
  }
  else if(param == 6){
    $(".6").click();
  }
  else if(param == 7){
    $(".7").click();
  }
  else if(param == 8){
    $(".8").click();
  }
  else if(param == 9){
    $(".9").click();
  }
  else if(param == 10){
    $(".10").click();
  }
});
我已尝试创建一个循环来遍历所有选择器:

var array = [];
$('.list-group li').each(function(idx, el){
    array.push(el);
});

但是我很难弄清楚如何将查询参数的值与数组中的值进行比较,并选择数组值来触发类。简单地在列表组上循环的一个主要原因是有10个以上的项目。我可能考虑过这个功能,可以只使用原始的实现,但我认为这可能更干净。

假设您有一个类名数组:

if( divClasses.indexOf(param) > -1 ){
  $("."+param).click();
}

假设您有一个类名数组:

if( divClasses.indexOf(param) > -1 ){
  $("."+param).click();
}
试试这个

var array = [];
$('.list-group li').each(function(idx, el){
    array.push(el);
});
var param = window.location.search.split('?id=')[1];
param = parseInt(param);
if(param && array[param]) {
    array[param].click();
}
试试这个

var array = [];
$('.list-group li').each(function(idx, el){
    array.push(el);
});
var param = window.location.search.split('?id=')[1];
param = parseInt(param);
if(param && array[param]) {
    array[param].click();
}

通过按如下方式构建选择器字符串,可以摆脱
if
语句:

var param = window.location.search.split('?id=')[1];
$("." + param).click();
i、 e

  • 获取参数号
  • 选择参数计算为的具有类值的所有元素
  • 调用所选内容的
    click()
    方法

您可以通过如下方式构建选择器字符串来摆脱
if
语句:

var param = window.location.search.split('?id=')[1];
$("." + param).click();
i、 e

  • 获取参数号
  • 选择参数计算为的具有类值的所有元素
  • 调用所选内容的
    click()
    方法

首先尝试根据输入参数创建选择器,然后检查是否存在此类div,如果存在,则调用其
单击
方法:

    var id = window.location.search.split('?id=')[1]; // grab the input
    var selector = '.' + id;                          // construct the selector
    var div = $(selector);                            // search for the div
    if(div.length > 0) {                              // check if the div is found
        div.click();                                  // perform the click
    }

首先尝试根据输入参数创建选择器,然后检查是否存在此类div,如果存在,则调用其
单击
方法:

    var id = window.location.search.split('?id=')[1]; // grab the input
    var selector = '.' + id;                          // construct the selector
    var div = $(selector);                            // search for the div
    if(div.length > 0) {                              // check if the div is found
        div.click();                                  // perform the click
    }

既然你已经有了var 所以你可以简单地做

var param=window.location.search.split('?id=')[1];
$('.+参数)。单击()


无需创建新数组,因为您已经有了var 所以你可以简单地做

var param=window.location.search.split('?id=')[1];
$('.+参数)。单击()


无需创建新阵列

这正是我想到的想法!非常感谢。这就是我想到的主意!非常感谢。