Javascript - 通过自定义标记循环

时间:2013-02-15 19:21:59

标签: javascript html

使用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上显示下拉列表。有没有其他方法可以获取信息?

2 个答案:

答案 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