gpt4 book ai didi

javascript - 使用纯 Javascript 创建 input type=radio 并按名称检索它们(ie9 上的 ie7 标准)

转载 作者:可可西里 更新时间:2023-11-01 13:33:51 25 4
gpt4 key购买 nike

此脚本适用于 IE9:

var newAnswer = document.createElement("input");
newAnswer.setAttribute("type","radio");
newAnswer.setAttribute("id","1");
newAnswer.setAttribute("name","answers");

并生成这个 html:

<input name="answers" id="1" type="radio" value="1"/>

我可以创建多个 input type=radio 并按名称检索它们。

但是如果我将文档模式设置为 ie7 标准,每个生成的输入看起来像:

<input submitName="answers" id="1" type="radio" value="1"/>

(注意名称属性显示为 submitName)

然后我不能使用类似的东西:

var answers = document.getElementByName("answers");

然后 getElementsByName 不起作用,为什么 IE(文档模式 ie7 标准)创建此属性“submitName”?这是预期的行为吗?我能否使代码在 ie7 文档模式下工作,就像它在 ie9 模式下工作一样?

我已经阅读了几个问题的答案,但我无法理解。

最佳答案

好的,从上一个开始,这个我刚刚测试过,它可以在 IE7 中运行

var testName = null;
function createElementWithName (type, attrs) {
if(testName ===null) {
try{
var x = document.createElement("<input />");
testName = false;
} catch(e) {
testName = true;
}
}
var htmlStr = testName || !attrs.name ? type : '<' + type + ' name="' + attrs.name + '">';
var elem = document.createElement(htmlStr);
for (var prop in attrs) {
elem.setAttribute(prop, attrs[prop]);
}
return elem;
}


var attrs = { type: "radio", name: "answers" };

attrs.id="foo1";
var newAnswer1 = createElementWithName("input", attrs);

attrs.id="foo2";
var newAnswer2 = createElementWithName("input", attrs);

attrs.id="foo3";
var newAnswer3 = createElementWithName("input", attrs);

document.getElementById("xxx").appendChild(newAnswer1);
document.getElementById("xxx").appendChild(newAnswer2);
document.getElementById("xxx").appendChild(newAnswer3);

JSFiddle:http://jsfiddle.net/cfC5r/1/show/

关于javascript - 使用纯 Javascript 创建 input type=radio 并按名称检索它们(ie9 上的 ie7 标准),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22231436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com