<div id="div1" style="display:none;" class="abcd">
<p>Black</p>
</div>
<div id="div2" style="display:none;" class="abcd">
<p>Red</p>
</div>
<div id="div3" style="display:none;" class="abcd">
<p>Blue</p>
</div>
<input type="button" value="Black" id="black" class="btn"
onClick="showDiv('div1')"/>
<input type="button" value="Red" id="red" class="btn"
onClick="showDiv('div2')"/>
<input type="button" value="Blue" id="blue" class="btn"
onClick="showDiv('div3')"/>
function showDiv(divId){
$('.abcd').hide();
$('#'+divId).show();
}
我在javascript中使用上面的代码,当点击相应的按钮时显示隐藏div,剩下的div需要隐藏。我从javascript函数传递div id。
$('#btn').click(function(){
});
这里我怎么能在jQuery .click事件中动态传递那些divid.Thanks提前....
答案 0 :(得分:8)
这将是一个更简洁的方法,没有onclick:
<input data-id="div1" type="button" value="Black" id="black" class="btn" />
<input data-id="div2" type="button" value="Red" id="red" class="btn" />
<input data-id="div3" type="button" value="Blue" id="blue" class="btn"/>
$('.btn').click(function(){
$('#'+$(this).data('id')).toggle();
});
这样,如果您将其ID插入按钮的data-id
属性,则可以显示/切换任何元素。
答案 1 :(得分:3)
由于您提供了输入类btn
,因此需要使用.
代替#
作为参考。然后你可以这样做,根据点击的按钮显示div:
$('.btn').click(function(i) {
var index = $(this).index('input') + 1;
$('#div' + index).show().siblings('div').hide();
});
<强> FIDDLE 强>
答案 2 :(得分:2)
你可以这样做:
$('.btn').click(function(){
$('.abcd').not(':contains('+$(this).val()+')').hide();
$('.abcd:contains('+$(this).val()+')').show();
});
这样,您onClick
元素就不需要<button>
属性了,因为您的<div>
元素与<p>
元素的关联一个等于点击按钮值的文本...