【问题标题】:if statements with class value not working如果具有类值的语句不起作用
【发布时间】:2012-06-01 16:30:31
【问题描述】:

有人可以向我解释为什么这不起作用。从逻辑上讲是有道理的,但是有没有更好的方法呢?

$('#n2').click(function() {
    if ($('#b0').attr('class') == 'box position0') {
        movedown2
    }
})​

【问题讨论】:

  • 没有随附的 HTML,我们无法判断这是否正确。
  • 当#n2被点击时它应该运行函数movedown2,但前提是#b0的类等于'box position0'
  • 你可能想使用api.jquery.com/hasClass
  • 哪一部分失败了?点击类检查?您是否输入了 window.alert() 或 console.log() 来查看哪个部分失败了?你也可以考虑使用 hasClass 函数而不是 attr
  • 好的,这是我的代码jsfiddle.net/peyTr 我需要它在切换它时更新类,以便它只在它是特定类时运行该函数。 hasClass 也不起作用

标签: jquery class if-statement


【解决方案1】:

你可以像下面这样,

$('#b0').is('.box.position0'))

DEMO

$('#b0')[0].className == 'box position0'

您还缺少函数调用()

$('#n2').click( function(){ 
   if( $('#b0').is('.box.position0') ) {
     movedown2(); //Note the () added which was missing in your orig code
   } 
});

【讨论】:

    【解决方案2】:

    正如您从这个小提琴中看到的那样,您拥有的 jQuery 应该可以很好地进入您的 if 语句:

    http://jsfiddle.net/6TbT5/

    movedown2 漂浮在其中的事实可能是您的问题。您必须为我发布您的 HTML。

    【讨论】:

      猜你喜欢
      • 2012-12-26
      • 2013-06-20
      • 2013-09-04
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多