js 输出li的value值,求解

shancheng44 2014-01-03 04:37:38

document.writeln(' <dd style=\"display:none\" class=\"dd2\">')
document.writeln(' <ul>')
document.writeln(' <li value=\"20132278349720\">国土新闻</li>')
document.writeln(' <li value=\"20133977018825\">政务公开</li>')
document.writeln(' <li value=\"20139796977736\">在线办事</li>')
document.writeln(' <li value=\"20137092169662\">网上互动</li>')
document.writeln(' <li value=\"20133958046772\">业务信息</li>')
document.writeln(' </ul><input name=\"tid\" type=\"hidden\" value=\"0\">')
document.writeln(' </dd>')


20132278349720这样的的值,输出之后取值就变成了2147483647,求解怎么处理?
...全文
305 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyuan_07 2015-07-25
  • 打赏
  • 举报
回复
我现在也遇到相同的问题,请问楼主怎么解决的
  • 打赏
  • 举报
回复
value是li的标准属性,用于ul list-style:decimal或者如容器为ol时显示数字,指定开始数字,你的数字太大,导致溢出了 see this,e文的 http://www.w3schools.com/tags/att_li_value.asp
shancheng44 2014-01-03
  • 打赏
  • 举报
回复
引用 10 楼 zyl_lyr1019 的回复:
原来是IE下的问题啊。 估计是IE下,对value的一些处理吧,你可以试试,IE下的这个value的值,最大就是2147483647, 你设置成2147483646可以显示正常,设置成2147483648就不会显示正常了。 你换个属性存这东西吧,比如换成 num="20133977018825" 具体原因,不知道。。。
谢谢,试试去
张运领 2014-01-03
  • 打赏
  • 举报
回复
原来是IE下的问题啊。 估计是IE下,对value的一些处理吧,你可以试试,IE下的这个value的值,最大就是2147483647, 你设置成2147483646可以显示正常,设置成2147483648就不会显示正常了。 你换个属性存这东西吧,比如换成 num="20133977018825" 具体原因,不知道。。。
shancheng44 2014-01-03
  • 打赏
  • 举报
回复

document.writeln('<form id=\"SearchForm\" name=\"SearchForm\" method=\"get\" action=\"/item/index.asp\">')
document.writeln('<dl>')
document.writeln('  <dt onclick=\"AjaxSelectBox(this)\" class=\"dt1\">标题</dt>')
document.writeln('  <dd style=\"display:none\" class=\"dd1\">')
document.writeln('    <ul>')
document.writeln('      <li value=\"s1\">标题</li>')
document.writeln('      <li value=\"s2\">内 容</li>')
document.writeln('      <li value=\"s3\">作 者</li>')
document.writeln('      <li value=\"s4\">录入者</li>')
document.writeln('      <li value=\"s5\">关键字</li>')
document.writeln('    </ul><input name=\"t\" type=\"hidden\" value=\"1\">')
document.writeln('  </dd>')
document.writeln('</dl>')
document.writeln('<dl>')
document.writeln('  <dt onclick=\"AjaxSelectBox(this)\" class=\"dt2\">所有栏目</dt>')
document.writeln('  <dd style=\"display:none\" class=\"dd2\">')
document.writeln('      <ul>')
document.writeln('          <li value=\"20132278349720\">国土新闻</li>')
document.writeln('          <li value=\"20133977018825\">政务公开</li>')
document.writeln('          <li value=\"20139796977736\">在线办事</li>')
document.writeln('          <li value=\"20137092169662\">网上互动</li>')
document.writeln('          <li value=\"20133958046772\">业务信息</li>')
document.writeln('      </ul><input name=\"tid\" type=\"hidden\" value=\"0\">')
document.writeln('  </dd>')
document.writeln('</dl>')
document.writeln('<div class=\"search_box\">')
document.writeln('<input type=\"text\" name=\"key\" id=\"key\" value=\"输入关键字\" onFocus=\"if(this.value==\'输入关键字\'){this.value=\'\'}\" onBlur=\"if(this.value==\'\'){this.value=\'输入关键字\'}\" class=\"s_int\" />')
document.writeln('<input name=\"ChannelID\" value=\"1\" type=\"hidden\" />')
document.writeln('<input value=\"\" class=\"s_bon\" type=\"submit\" />')
document.writeln('</div>')
document.writeln('</form>')
这是原来js文件的内容,上一楼发的那个是我修改过后的
shancheng44 2014-01-03
  • 打赏
  • 举报
回复
引用 7 楼 zyl_lyr1019 的回复:
就是说,在HTML结构中,li的value值是没有问题的。 在js中,取到的li的值,也是没有问题的。 那取值之后,到输出到浏览器,这两者之间,你对这个值,做了哪些处理? 这块的js代码,方便贴吗?
这是js文件的内容

document.writeln('<form id=\"SearchForm\" name=\"SearchForm\" method=\"get\" action=\"/item/index.asp\">')
document.writeln('<dl>')
document.writeln('  <dt onclick=\"AjaxSelectBox(this)\" class=\"dt1\">标题</dt>')
document.writeln('  <dd style=\"display:none\" class=\"dd1\">')
document.writeln('    <ul>')
document.writeln('      <li value=\"s1\">标题</li>')
document.writeln('      <li value=\"s2\">内 容</li>')
document.writeln('      <li value=\"s3\">作 者</li>')
document.writeln('      <li value=\"s4\">录入者</li>')
document.writeln('      <li value=\"s5\">关键字</li>')
document.writeln('    </ul><input name=\"t\" type=\"hidden\" value=\"1\">')
document.writeln('  </dd>')
document.writeln('</dl>')
document.writeln('<dl>')
document.writeln('  <dt onclick=\"AjaxSelectBox(this)\" class=\"dt2\">所有栏目</dt>')
document.writeln('  <dd style=\"display:none\" class=\"dd2\">')
document.writeln('      <ul>')
document.writeln('          <li value=\"s20132278349720\">国土新闻</li>')
document.writeln('          <li value=\"s20133977018825\">政务公开</li>')
document.writeln('          <li value=\"s20139796977736\">在线办事</li>')
document.writeln('          <li value=\"s20137092169662\">网上互动</li>')
document.writeln('          <li value=\"s20133958046772\">业务信息</li>')
document.writeln('      </ul><input name=\"tid\" type=\"hidden\" value=\"0\">')
document.writeln('  </dd>')
document.writeln('</dl>')
document.writeln('<div class=\"search_box\">')
document.writeln('<input type=\"text\" name=\"key\" id=\"key\" value=\"输入关键字\" onFocus=\"if(this.value==\'输入关键字\'){this.value=\'\'}\" onBlur=\"if(this.value==\'\'){this.value=\'输入关键字\'}\" class=\"s_int\" />')
document.writeln('<input name=\"ChannelID\" value=\"1\" type=\"hidden\" />')
document.writeln('<input value=\"\" class=\"s_bon\" type=\"submit\" />')
document.writeln('</div>')
document.writeln('</form>')
页面上这样引用这个js文件

<div class="search fixed">
    <script src="/js/search.js"></script>
</div>
这中间没有对这个js文件进行任何操作。 按照理想装填下,这个js文件内容输出到页面上应该是以下

...
<dd style="display:none" class="dd2">
<ul>)
<li value="20132278349720">国土新闻</li>
<li value="20133977018825">政务公开</li>
<li value="20139796977736">在线办事</li>
<li value="20137092169662">网上互动</li>
<li value="20133958046772">业务信息</li>
</ul><input name="tid" type="hidden" value="0">
</dd>
...
但是实际上页面上输出的内容我通过IE自带的开发人员工具查看是

...
<li value="2147483647">国土新闻</li>
<li value="2147483647">政务公开</li>
<li value="2147483647">在线办事</li>
<li value="2147483647">网上互动</li>
<li value="2147483647">业务信息</li>
...
这样描述的清楚了么
张运领 2014-01-03
  • 打赏
  • 举报
回复
就是说,在HTML结构中,li的value值是没有问题的。 在js中,取到的li的值,也是没有问题的。 那取值之后,到输出到浏览器,这两者之间,你对这个值,做了哪些处理? 这块的js代码,方便贴吗?
shancheng44 2014-01-03
  • 打赏
  • 举报
回复
引用 4 楼 zyl_lyr1019 的回复:
li的dom元素对象中,并没有value的属性,如果你是 document.getElementById(id).value这样的取值,是不能取到正确的值的 你得使用document.getElementById(id).getAttribute("value");这样的方法才能取到相应的值。 就是直接dom.value取值不行,要dom.getAttribute("value")这样取值才可以的。 试试是不是这样原因。
谢谢,取值没问题,问题是value的值在js定义的和最终输出到浏览器的值不一样,这样说清楚么
shancheng44 2014-01-03
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
不明白说的什么,肯定你代码有问题
就是说上面的代码是在js文件里,然后再页面上引用这个js文件,按照理想状态页面上输出的应该是

<dd style="display:none" class="dd2">
<ul>')
<li value="20132278349720">国土新闻</li>
<li value="20133977018825">政务公开</li>
<li value="20139796977736">在线办事</li>
<li value="20137092169662">网上互动</li>
<li value="20133958046772">业务信息</li>
</ul><input name="tid" type="hidden" value="0">
</dd>
这样的内容,但是我查看浏览器输出的内容 20132278349720 20133977018825 20139796977736 20137092169662 20133958046772 这几个value的值都变成了2147483647 我想问一下怎么才能把原始值输出出来
张运领 2014-01-03
  • 打赏
  • 举报
回复
li的dom元素对象中,并没有value的属性,如果你是 document.getElementById(id).value这样的取值,是不能取到正确的值的 你得使用document.getElementById(id).getAttribute("value");这样的方法才能取到相应的值。 就是直接dom.value取值不行,要dom.getAttribute("value")这样取值才可以的。 试试是不是这样原因。
shancheng44 2014-01-03
  • 打赏
  • 举报
回复
引用 2 楼 u012463264 的回复:
li没value属性, 有文本域innerHTML
通过 getAttribute("value")可以得到这个value值
别闹腰不好 2014-01-03
  • 打赏
  • 举报
回复
li没value属性, 有文本域innerHTML
  • 打赏
  • 举报
回复
不明白说的什么,肯定你代码有问题

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧