为简单起见,我们假设我有一个元素列表"#a1,a2,a3,a4 ......"和另一个列表"#b1,b2,b3,b4 ..."。当我点击#b1
时,我希望显示#a1
,我希望在点击#b2
时显示#a2
,等等。
我可以写:
$("#a1").click(function() {
$("b1).show();
});
$("#a2").click(function() {
$("b2).show();
});
...
等等。但是如果列表变得更长,那将会是很多代码。
有没有办法自动生成jQuery?这里有一些非常粗糙的rails-y伪代码来说明我想要做的事情:
for (ids a1 - a99).each do |id|
$("#a[id]").click(function() {
$("#b[id]).show();
});
end
答案 0 :(得分:0)
使用starts-with选择器并使用正则表达式获取数字。
$('[id^="a"]').click(function(){
var number = /\d+/.exec(this.id)[0];
$('#b' + number).show()
});
答案 1 :(得分:0)
我认为循环可能就足够了。将所有处理程序附加到document ready
。
// arr is an array of int, according to your DOM
$.each(arr, function(){
$("#a"+this).click(function() {
$("#b"+this).show();
});
});