想要显示“True”和“False”按钮

时间:2011-12-11 17:17:37

标签: javascript jquery dom

我有一个按钮网格,用户通过单击(打开网格)链接然后单击该网格中的按钮来打开网格。我想要做的是,如果用户点击“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

4 个答案:

答案 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的大多数问题源于:

  • 这是一个糟糕的用户界面(没有冒犯,只考虑一下)
  • 您使用UI存储状态。不要那样做。 UI应该依赖于状态,而不是相反。