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

===============>>#1 票数:2

getElementsByClassName返回一个NodeList(其作用类似于数组),而不是单个Element。

===============>>#2 票数:2 已采纳

代替这个:

if (document.getElementsByClassName("gridBtns").value == "True or False")
{
    document.getElementId("answerTrue").style.display = "block";
}

尝试这个:

if (this.id=='btnTrueorFalse') {
    $('#answerTrue').show();
    $('#answerFalse').show();
} 

除了另一篇文章中已经提到的1 / many错误外,看起来原始文档只是在错误的位置寻找错误的属性。

===============>>#3 票数:0

等于您上面的代码的jQuery代码将是

if($('.gridBtns').val() == 'True or False'){
  $('#answerTrue').show(); //you may also use .css() for it, but show() has the same    result
}

===============>>#4 票数:0

我已经在这里看到这段代码一段时间了:

如果您使用jQuery,请使用它。 突然做document.getElementById(..)简直是荒谬的。 只需在各处使用jQuery选择器和方法(例如.addClass(..)而不是.className = ..)。 jQuery是您访问DOM的方式,使用混合只是令人困惑。

另外,我注意到您对此Ui的大部分问题来自以下事实:

  • 这是一个糟糕的用户界面(不要冒犯,请考虑一下)
  • 您可以使用UI来存储状态。 不要那样做 UI应该取决于状态,而不是相反。

  ask by BruceyBandit translate from so

未解决问题?本站智能推荐:

关注微信公众号