javascript - parseInt 应该是数字时返回 NaN?

标签 javascript jquery nan custom-data-attribute parseint

我有以下代码:

$(function() {
    var $form = $("#pollAnswers"),
        $radioOptions = $form.find("input[type='radio']"),
        $existingDataWrapper = $(".web-app-item-data"),
        $webAppItemName = $existingDataWrapper.data("item-name"),
        $formButton = $form.find("button");
    
        $radioOptions.on("change",function(){
    
          $formButton.removeAttr("disabled");
    
          var chosenField = $(this).data("field"), 
              answer_1 = parseInt($existingDataWrapper.data("answer-1")),
              answer_2 = parseInt($existingDataWrapper.data("answer-2")),
              answer_3 = parseInt($existingDataWrapper.data("answer-3"));
            
            console.log("1 =" + answer_1);
            console.log("2 =" + answer_2);
            console.log("3 =" + answer_3);
            
            //Additional code not related to question
         });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="web-app-item-data" data-item-name="Test" data-answer-1="0"  data-answer-2="0"  data-answer-3="0"></div>

<form id="pollAnswers">
    <div class="answers">
        <input type="radio" name="radioChoice" data-field="CAT_Custom_2"> Answer 1<br>
        <input type="radio" name="radioChoice" data-field="CAT_Custom_4"> Answer 2<br>
        <input type="radio" name="radioChoice" data-field="CAT_Custom_6"> Answer 3<br>
    </div>
<button type="submit" disabled>Submit</button>
</form>

当您运行代码时,您将在控制台中看到答案 1、2 和 3 都返回 NaN

更新:

正如 Charlie H 在评论中指出的那样,如果我删除 parseInt,它会返回 undefined

我没有在代码中看到为什么它没有从 div 中提取数据属性值的错误。

我该如何解决这个问题?

最佳答案

jQuery 2.1.3 似乎无法识别包含仅由数字组成的名称段的数据属性。例如,这些工作:

  • data-answer as .data()["answer"]
  • data-foo as .data()["foo"]
  • data-foo-bar 作为 .data()["fooBar"]

这些不:

  • data-answer-1

  • data-foo-bar-3

jQuery 3 表现得更符合预期。

关于javascript - parseInt 应该是数字时返回 NaN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33161462/

相关文章:

java - RMS 的快速计算在 Java 中给出了 NaNs - 浮点错误?

javascript - 创建一个与另一个形状相同的树数据结构

javascript - 未捕获的类型错误 : Cannot read property 'nodeType' of null

javascript - 为什么客户端不会在公用文件夹中收到此脚本的新版本?

jquery - 我无法验证第二个条件

javascript - 如何使用 Javascript 保存内容

javascript - Selenium 测试的 JS 代码覆盖率

javascript - Jquery 更改部分文本的文本和 css

java - 如何在数字数组中表示 NaN?

javascript - 为什么在 isFinite() 之后检查 !isNaN()?