我有一个div列表,点击每个将显示另一个div。我目前有一个脚本,它将获取查询参数值(e.g: 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个项目的事件。我可能正在考虑这个功能,可能只是使用原始实现,但认为这可能更清晰。
答案 0 :(得分:1)
您可以通过构建选择器字符串来删除if
语句,如下所示:
var param = window.location.search.split('?id=')[1];
$("." + param).click();
即
click()
方法
答案 1 :(得分:1)
首先尝试根据输入参数创建选择器,然后检查是否存在这样的div,如果是,则调用其click
方法:
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
}
答案 2 :(得分:1)
因为你已经有了var 所以你可以这样做,
var param = window.location.search.split('?id=')[1];
$('.'+param).click();
无需创建新数组
答案 3 :(得分:0)
假设你有一个类名数组:
if( divClasses.indexOf(param) > -1 ){
$("."+param).click();
}
答案 4 :(得分:0)
试试这个
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();
}