关于数值转换的问题

    <ul id="source">
        <li>北京空气质量:<b>90</b></li>
        <li>上海空气质量:<b>70</b></li>
        <li>天津空气质量:<b>80</b></li>
        <li>广州空气质量:<b>50</b></li>
        <li>深圳空气质量:<b>40</b></li>
        <li>福州空气质量:<b>32</b></li>
        <li>成都空气质量:<b>90</b></li>
    </ul>
   <script type="text/javascript">
               var ul_id = document.getElementById("source");
               var data = [];
               for(var i = 0 ; i < ul_id.childElementCount ; i++){
                   var Li = ul_id.children[i];
                   var aqi = Li.innerHTML.split("空气质量:")[1];
                   document.write(Number(aqi));
               }
   </script>

图片描述

var aqi = Li.innerHTML.split("空气质量:")[1];通过这一句可以取得["北京",90]中的90,但为什么转换后会变成NaN?

阅读 2k
4 个回答

使用innerText,你用innerHTML,得到的是["北京","<b>90</b>"]

这些才是取出来的api

<b>90</b>
<b>70</b>
<b>80</b>
<b>50</b>
<b>40</b>
<b>32</b>
<b>90</b>
var aqi = Li.innerHTML.split("空气质量:")[1];

看看aqi的值是什么,就知道为什么了

var aqi=$('<li>成都空气质量:<b>90</b></li>').text().split("空气质量:")[1];

用正则吧。

<li>北京空气质量:<b>90</b></li>".match(/\d+/)
result:["90"]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题