我有一个按钮网格,用户通过单击(打开网格)链接然后单击该网格中的按钮来打开网格。我想要做的是,如果用户点击“True或False”按钮,那么它应该在“Number of Answers”文本框下面输出“True”和“False”按钮。但它没有显示任何东西。我做错了什么?
代码在这里:
$(".gridBtns").click(function() {
var clickedNumber = this.value;
$('.answerBtns').each(function (index) {
if (index < clickedNumber)
$(this).show();
else
$(this).hide();
});
if (document.getElementsByClassName("gridBtns").value == "True or False")
{
document.getElementId("answerTrue").style.display = "block";
}
});
完整代码在jsfiddle中,点击here
答案 0 :(得分:2)
getElementsByClassName
返回NodeList(其作用类似于数组),而不是单个Element。
答案 1 :(得分:2)
而不是:
if (document.getElementsByClassName("gridBtns").value == "True or False")
{
document.getElementId("answerTrue").style.display = "block";
}
试试这个:
if (this.id=='btnTrueorFalse') {
$('#answerTrue').show();
$('#answerFalse').show();
}
除了在另一篇文章中已经提到的1 /多个错误之外,看起来原版只是在错误的地方寻找错误的属性。
答案 2 :(得分:0)
与上面的代码相等的jQuery代码将是
if($('.gridBtns').val() == 'True or False'){
$('#answerTrue').show(); //you may also use .css() for it, but show() has the same result
}
答案 3 :(得分:0)
我已经在这里看了一段时间这段代码:
如果你使用jQuery,使用它。执行document.getElementById(..)突然只是荒谬的。只需在任何地方使用jQuery选择器和方法(f.i.addClass(..)而不是.className = ..)。 jQuery是你访问DOM的方式,使用混合只会令人困惑。
另外,我注意到你对这个Ui的大多数问题源于: