【问题标题】:jQuery .next() returing NULL in FF but not in chrome, ie, opera!jQuery .next() 在 FF 中返回 NULL,但在 chrome 或歌剧中不返回 NULL!
【发布时间】:2011-04-08 18:48:21
【问题描述】:

我确实花了几个小时试图解决这个问题,但不能!就像标题一样,以下代码适用于除 Firefox 之外的所有应用程序!

HTML

<div class="bottom">
   <fieldset>
     <ul>
         <li>
            <label>
                <input type="radio" name="fronts" class="config-inp-cha" value="1"  checked="checked" />
                   Buckets w/ adj headrests 
                   ($<div class="price-config">179.97</div>)
            </label>&nbsp;
         </li>
     </ul>
  </fieldset>
</div><!--bottom-->

JavaScript 描述:非常简单,我获取 price-config div 的值并参考检查的值。这在 Firefox 中返回 NaN,但在其他所有浏览器中都有效! PLzzz 帮助

 $(document).ready(function() 
 {
    var fronts_price = parseFloat($("input[name=fronts]:checked").next('.price-config').html());
    alert(fronts_price);
});

【问题讨论】:

  • 人们经常使用其他工具来评估可能发生的事情。请粘贴您的渲染源代码,不含 PHP 标记。这样使用 jsfiddle.net 之类的东西要容易得多!
  • 在我看来没问题,并在 FF 4.0 中为您进行了快速测试...它按预期提醒 179.97。
  • 我就是不明白! 3.6 出问题了,(mac版)。

标签: jquery


【解决方案1】:

您是否尝试过正确使用&lt;label&gt; 标签? http://www.w3schools.com/tags/tag_label.asp

【讨论】:

  • 你先生,让我比其他任何女人都更快乐!哈哈,但严重的是,你发现标签的不正确使用正在弄乱 DOM。干杯!
  • W3 Schools has issues。我推荐Mozilla的MDC Reference
  • 我通常也不信任 W3 School,但在这种情况下,信息足以解决问题
【解决方案2】:

只需将 div 更改为 span:

http://jsfiddle.net/rdyhE/4/

编辑:忘记更改结束标签

【讨论】:

  • 感谢这是一个非常好的解决方案!知道为什么这有效而不是 div 吗?
  • 我认为这可能与div是块元素而span是内联元素的事实有关。
【解决方案3】:

如果您使用的是最新的 jQuery,实际上是任何 jQuery,您需要将选择器中的 name 属性用引号括起来:

$(document).ready(function() 
 {
    var fronts_price = parseFloat($('input[name="fronts"]:checked').next('.price-config').html());
    alert(fronts_price);
});

【讨论】:

  • 真的吗?我从不使用它。
  • 我相信从 jQuery 1.4.2 开始,如果你不包装属性,选择器会失败。
  • 单字属性有效,多字无效:jsfiddle.net/eddiemonge/cpcmz/2
猜你喜欢
  • 1970-01-01
  • 2022-06-14
  • 2021-08-05
  • 2013-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
  • 2011-02-06
相关资源
最近更新 更多