这是一个旧脚本,我的修改无效。
var x=parent.frames[0].document.getElementsByTagName("INPUT");
for(a=0; a < x.length; a++){
我需要添加对选择框的支持,所以我这样做了。
var x=parent.frames[0].document.getElementsByTagName("INPUT");
var y=parent.frames[0].document.getElementsByTagName("select");
x = x+y;
for(a=0; a < x.length; a++){
for
我们有了这个。
if(misc.length == 0){
misc = misc + x[a].name + ':' + x[a].value + ':' + x[a].checked;
} else {
misc = misc + "~cmd~" + x[a].name + ':' + x[a].value + ':' + x[a].checked;
}
有没有人知道如何实现这一目标,所以选择值也会在数组中返回?
答案 0 :(得分:0)
<select>
个元素。你需要循环其选项。这里有一些示例代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
<script type="text/javascript"><!--
function fetchValues(){
var s = document.getElementsByTagName("select");
var output = "";
for(var i=0, len=s.length; i<len; i++){
output += s[i].name + ":\n";
for(var j=0, lenj=s[i].options.length; j<lenj; j++){
output += "\t- "
+ s[i].options[j].value
+ " (" + s[i].options[j].text + "): "
+ (s[i].options[j].selected ? 'Yes' : 'No')
+ "\n";
}
}
alert(output);
}
//--></script>
</head>
<body>
<form action="" method="get">
<select name="single-value">
<option value="s1">First single value</option>
<option value="s2">Second single value</option>
<option value="s3" selected="selected">Third single value</option>
<option value="s4">Fourth single value</option>
</select>
<select name="multiple-values" multiple="multiple" size="5">
<option value="m1">First multiple value</option>
<option value="m2" selected="selected">Second multiple value</option>
<option value="m3">Third multiple value</option>
<option value="m4" selected="selected">Fourth multiple value</option>
</select>
<input type="button" onclick="fetchValues()" value="Fetch values">
</form>
</body>
</html>
我建议你使用这些想法来编写一个以<select>
节点为参数并返回数组的函数。
答案 1 :(得分:0)
getElementsByTagName返回一个HtmlCollection,遗憾的是我们不能只使用x.concat(y)
来返回一个新的组合数组。
您可以创建一个新数组,然后循环遍历x和y并按下它上面的值。
var z = new Array();
for (var i=0; i < x.length; i++) {
z.push(x[i]);
}
for (var j=0; j < y.length; j++) {
z.push(y[j]);
}
var misc="";
// Loop through z and do whatever we want
for (var k=0; k < z.length; z++) {
if(misc.length == 0){
misc = misc + z[k].name + ':' + z[k].value + ':' + z[k].checked;
} else {
misc = misc + "~cmd~" + z[k].name + ':' + z[k].value + ':' + z[k].checked;
}
}