+
 新版

HTML标签li中的value值通过js获取错误?

Alittle 发布于 2014/12/05 16:42
阅读 2K+
收藏 0

HTML 页面代码:

    <ul id="test_id" style="text-align: left;">
           <li value="11-22-33"> </li>
           <li value="77-88--99">  </li>
   </ul>


JS代码:

    var li = $("#test_id").find("li");

            li.each(function (i) {
               alert(li.eq(i).attr("value"));
              //  alert(li.eq(i).val());

            });


js打印出来的值为什么是11 和 77 ? li中的value值的分隔符又什么要求吗?



加载中
0
Alittle
Alittle
补充我li中的value值存的是三个以上字段的值,用什么分隔符才不会让js获取的时候出现这样的错误?
0
ifeixiang
ifeixiang

这个和分隔符是没有关系的, dom节点需要转换成jquery对象

li.each(function (index,item) {

  var data = $(item).attr("value");

  alert(data);

}


Alittle
Alittle
感谢你的回答,我试了一下你的方法,跟我打印出来的值时一样的,我查了一下,原因在于HTML的li标签的属性value是有规定的:规定列表项目的数字。所以它的value只能是数字,存了其他例如字母或者其他字符都是无效的。 我现在的解决方法是,li中的value属性改成val属性替代,这样attr('val');就能获取到完整的信息了。
0
JasonWcx
JasonWcx
//用原生的代码也很简单能够做到
var objNodes=document.getElementById('test_id');
var sValue='';
for(var i=0;i<objNodes.length;i++){
   s+=objNodes[i].getAttribute('value');
}
alert(s);



Alittle
Alittle
感谢你的回答。我不是不知道怎么获取,而是获取的时候值出现问题,现在这个问题已经在LS的回复中解决了。 而且你getElementById()方法得到一个节点,怎么就可以通过迭代这个节点来获取它子标签下的值呢?你应该是粗心写错了吧。
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部