为了账号安全,请及时绑定邮箱和手机立即绑定

想实现js每点击一次按钮,文本节点数字增加一却出现了NAN,怎么回事?

想实现js每点击一次按钮,文本节点数字增加一却出现了NAN,怎么回事?

叮当猫咪 2019-05-21 16:51:53
想实现js每次点击,不断增加一个节点,节点的文本节点的数字比上一个节点的文本节点的数字增加一,但是怎么出现增加为NAN,已经用parseInt将字符串转换为数字了。可能语言描述不清晰,具体的的代码:Document*{margin:0;padding:0;}1234varoBtn=document.getElementsByTagName("input")[0];oBtn.onclick=append;functionappend(){varoUl=document.getElementsByTagName("ul")[0];varcRlitextnode=parseInt(oUl.lastChild.textNode);cRlitextnode++;console.log(cRlitextnode);varli=document.createElement("li");vartextNode=document.createTextNode(cRlitextnode);oUl.appendChild(li);li.appendChild(textNode);}希望大家能够帮忙解答,谢谢|
查看完整描述

2 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

//1.`Node.textNode`没有这个方法吧???你要获取节点里面的值还是老老实实用`innerHTML`吧~
//2.假设上面你改好了,然后下面这样的格式写html,用`oUl.lastChild`获取到的....是一个回车符号233,parseInt('')=NaN。。~惊不惊喜,意不意外~
  • 1
  • 2
  • 3
  • 4
  • 那么你可以写成这样:
    //html
  • 1
  • 2
  • 3
  • 4
  • //最后一个不换行
    //js
    varcRlitextnode=oUl.lastChild.innerHTML;
    不改html的话——————或者这样
    varcRlitextnode=oUl.lastElementChild.innerHTML;//注意firstElementChild的兼容性
    再或者兼容更好的
    varcRlitextnode=oUl.children[oUl.children.length-1].innerHTML;
                                
    查看完整回答
    反对 回复 2019-05-21
    ?
    www说

    TA贡献1775条经验 获得超8个赞

    varoBtn=document.getElementsByTagName("input")[0];
    oBtn.onclick=append;
    functionappend(){
    varoUl=document.getElementsByTagName("ul")[0];
    varcRlitextnode=parseInt(oUl.lastElementChild.innerText);
    cRlitextnode++;
    console.log(cRlitextnode);
    varli=document.createElement("li");
    vartextNode=document.createTextNode(cRlitextnode);
    oUl.appendChild(li);
    li.appendChild(textNode);
    }
                                
    查看完整回答
    反对 回复 2019-05-21
    • 2 回答
    • 0 关注
    • 777 浏览
    慕课专栏
    更多

    添加回答

    举报

    0/150
    提交
    取消
    意见反馈 帮助中心 APP下载
    官方微信