使用javascript,我如何循环自定义标记并显示结果而无需按下按钮?
我的javascript:
function a(){
var m=document.getElementsByTagName('myselect');
for (var i = 0; i<m.length; i++)
document.getElementById('divid').innerHTML = m[i].value;
}
我的HTML:
<myselect>
<option> a </option>
<option> b </option>
<option> c </option>
</myselect>
现在,我无法获取自定义标记,除非我定义<select>
标记而不是自定义标记,否则我无法显示信息。即便如此,我必须按下一个输入按钮加上我的javascript不会循环遍历所有元素,但是当前选中的元素。
P.S。我使用myselect的原因是因为我不想在我的html上显示下拉列表。有没有其他方法可以获取信息?
答案 0 :(得分:1)
正如我所说,你不应该使用自定义标签,因为结果将不再是有效的HTML。
其次,您使用m[i].value
代替m.options[i].value
,这似乎可以为您提供当前选定的元素。
第三 - 不确定获取信息的含义,但似乎您试图在HTML文档中保留一些信息。更好的方法是将其存储在JavaScript数组中:
var values = ['a', 'b', 'c'];
如果你真的需要你的信息成为HTML DOM的一部分而且它需要是一个选择,你可以想出类似的东西
<select style="display: none;"> etc...
那会非常奇怪,但没有人会看到它。
答案 1 :(得分:0)
我会将myselect标记定义为普通的select标记,并为其指定一个ID:
<select id="myselect">
然后在body标签中调用带有onload属性的函数:
<body onload="a()">
然后在你的javascript中将getElementByTagName更改为getElementById,如下所示:
ar m=document.getElementsById('myselect');
看看它是否适合您。我没有测试它,但这是它的要点。我还建议使用jQuery