我有几个街区:
<div id="a"></div>
<div id="b"></div>
<div id="c"></div>
<div id="d"></div>
....
的CSS:
#b{display:none;}
#c{display:none;}
#d{display:none;}
....
NAV:
<span id="show-a">Show A Block</span>
<span id="show-b">Show B Block</span>
....
如何制作,当我点击Show A Block
按钮时,会显示带id=a
的div?
答案 0 :(得分:1)
最简单的解决方案是引用一个对象:
<强> HTML 强>
<span id="show-a" rel="#a">Show A Block</span>
<span id="show-b" rel="#b">Show B Block</span>
<强> JS 强>
$('span[rel]').click(function() {
var obj = $(this).attr('rel');
$(obj).show();
})
答案 1 :(得分:0)
交换span和div的Id。它会起作用。
CSS
#show-a {display:none;}
HTML
<div id="show-a"></div>
<span id="a">Show A Block</span>
JS
$(document).ready(function() {
$('span').click(function() {
var showId = $(this).attr("id");
$("#show-" + showId).show();
});
});
答案 2 :(得分:-1)
以下是我的一些(或多或少随机)想法:
$('span#show-a').click(function() {
$('div#a').show();
});
如果您希望这是全局的(对于所有ID),您可以尝试这样的事情:
var ids = ['a', 'b', 'c', 'd', etc.];
for (var i in ids)
{
var id = ids[i];
$('span#show-'+id).click(function() {
$('div#'+id).show();
});
}
当然,你会希望以某种方式获得所有ID,使其更具动态性。最好的方法是将所有div包含在id为wrapper
的另一个div中并使用:
var ids = [];
$('div#wrapper div').each(function() {
ids.push($(this).attr('id'));
});
如果您希望在点击后隐藏其他div,您可以将自定义类添加到所有div,例如myClass
并在click
处理程序的开头添加以下行:
$('div.myClass').hide();