怎么用JS给一个HTML元素增加一个属性和值

siaosa 2012-05-30 11:46:18
有这样的HTML代码
<select style="width: 120px;" id="dp" name="dp" value="-1" onchange="funAlert(this)">
<option value="-1" selected="selected"></option>
<option value="1">WA1</option>
<option value="2">OR2</option>
<option value="3">AZ3</option>
<option value="4">UT4</option>
<option value="5">IA5</option>
<option value="6">MD6</option>
</select>

现在想在funAlert函数中实现这样的功能. 用户选择select中的一项之后HTML代码变成 选项的值,例如
选择WA1,那么增加:value="1"
选择OR2,那么增加:value="2"
.....
完整的HTML
<select style="width: 120px;" id="dp" name="dp" value="选项的值" onchange="funAlert(this)">
这样的JS函数要怎么写啊?不会往HTML里增加一个属性和值
...全文
14543 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
乌镇程序员 2012-05-30
  • 打赏
  • 举报
回复
<select style="width: 120px;" id="dp" name="dp" value="-1" onchange="funAlert(this)">
<option value="-1" selected="selected"></option>
<option value="1">WA1</option>
<option value="2">OR2</option>
<option value="3">AZ3</option>
<option value="4">UT4</option>
<option value="5">IA5</option>
<option value="6">MD6</option>
</select>

<script type="text/javascript">
function funAlert(obj) {
obj.setAttribute('demo', obj.value); //setAttribute设置自定义属性
alert(obj.getAttribute('demo')); //getAttribute获取自定义属性的值
alert(obj.getAttribute('value')); //由于没有用setAttribute('value', obj.value)修改自定义属性value的值,所以一直都是-1
alert(obj.value); //直接获取select对象的value值,返回当前选中的option的值
}
</script>


value属性比较特殊,尽管value属性不是select元素的标准属性,但在JS中是可以通过select对象.value来获取选定值的,通过这种方法取得的value值实际上是所选择的option的value值。
像你这样直接在select标签的html代码中设置了一个value属性,JS仍然会把它当作是自定义属性。所以就出现了例子中这个比较“奇怪”的现象。
suano 2012-05-30
  • 打赏
  • 举报
回复
<select style="width: 120px;" id="dp" name="dp" value="-1" onchange="funAlert(this.value)">

funAlert(o)
{
document.getElementById("你要赋值的对象ID").innerHTML==o;
}
licip 2012-05-30
  • 打赏
  • 举报
回复
+1[Quote=引用 2 楼 的回复:]

HTML code
<select style="width: 120px;" id="dp" name="dp" value="-1" onchange="funAlert(this)">
<option value="-1" selected="selected"></option>
<option value="1">WA1</option>
<option value="2……
[/Quote]
JJYY0088 2012-05-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
查看页面html代码 显示的是 加载时的html结构/值, 之后通过js来操作再查看页面html代码是没有变化的。
楼主 要看 dom的实时变化,可以下个firebug 来看。
[/Quote]
+++

用火狐插件:firebug 才可以看到。。。。
001007009 2012-05-30
  • 打赏
  • 举报
回复
查看页面html代码 显示的是 加载时的html结构/值, 之后通过js来操作再查看页面html代码是没有变化的。
楼主 要看 dom的实时变化,可以下个firebug 来看。
siaosa 2012-05-30
  • 打赏
  • 举报
回复
按鼠标右键,看生成的HTML代码,不管你选哪个选项,永远是:
<select style="width: 120px;" id="dp" name="dp" value="-1" demo="-1" onchange="funAlert(this)">
siaosa 2012-05-30
  • 打赏
  • 举报
回复
T5500
我按您的方法这样做. 按鼠标右键,然后看生成的HTML代码,HTML的代码并没有改变啊?
wohaishiliumang 2012-05-30
  • 打赏
  • 举报
回复
2,3楼正解. 赋值有很多种方法.

87,923

社区成员

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

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