我有两个网格,它们都显示按钮。一个网格显示数字,无论是真还是假,是或否,另一个网格显示字母,真,假,是和否。
第二个网格未显示在代码中(使用css不显示第二个网格按钮(.answerBtns))。
现在我已将其包含在我的代码中:
var clickedNumber = 10;
$('.answerBtns').each(function (index) {
if (index < clickedNumber) {
$(this).show();
}
});
现在这样做无论我在第一个网格中选择了哪个按钮,它总是会显示10个按钮。所以我需要的是clickNumber循环,所以它遍历按钮,所以如果用户选择第一个网格中的按钮“1”(你必须使用(打开网格)链接打开的网格,那么它应该显示第一个按钮是第二个网格中的“A”,如果用户在第一个网格中选择按钮“2”,那么它应该在第二个网格中显示前两个按钮“A”和“B”,如果“3”则显示“A” ,“B”和“C”等。
但是如果用户在第一个网格中选择“真或假”按钮,它应该只在第二个网格中显示“true”和“false”按钮,如果用户在第一个网格中选择“是或否”按钮,它应该显示仅在第二个网格中显示“是”和“否”按钮。
有谁知道怎么做?
谢谢
代码在jsfiddle中,单击here
答案 0 :(得分:1)
如果您将以下内容添加到buttonclick()
功能的末尾,则会显示或隐藏相应数量的按钮,如this updated jsfiddle中所示。
$('.answerBtns').each(function (index) {
if (index < button.value)
$(this).show();
else
$(this).hide();
});
请注意,除了使用点击按钮中的值而不是硬编码的10之外,这与您问题中的代码段基本相同。
但更一般地说,如果您使用的是jQuery,那么使用jQuery 。也就是说,不要在每个按钮中放置内联onclick处理程序。他们都只是说onclick="buttonclick(this);"
,他们都有相同的类,所以你应该从HTML中删除这些内联处理程序并使用jQuery进行设置。
所以你可以用这样的东西替换你的buttonclick功能:
$(".gridBtns").click(function() {
// what you need from your "buttonclick(button)" function should go here
// except instead of the "button" parameter you can just use "this",
// e.g., this.value
var clickedNumber = this.value;
$('.answerBtns').each(function (index) {
if (index < clickedNumber)
$(this).show();
else
$(this).hide();
});
});
我没有时间为你做“是或否”的部分,但也许你可以从上面解决这个问题?在点击处理程序中,您可以测试if (this.value==="yes or no")
,依此类推。