Firefox上的InvalidCharacterError(可能是其他浏览器)

时间:2013-07-24 18:16:48

标签: javascript cross-browser

我有以下一行Javascript代码:

objRadioElement = document.createElement('<input type="radio" name="rdUserDefined8" value="basketball" class="UDFRadioClass" disabled>');

它在Firefox中引起InvalidCharacterError(可能是其他浏览器,但我遇到了一些调试问题)。有谁能说出原因?

1 个答案:

答案 0 :(得分:2)

document.createElement不带HTML字符串;它采用您要创建的元素的名称:

var element = document.createElement('input');
element.setAttribute('type', 'radio');
// etc.

这就是jQuery方便的原因之一;你可以用这样的HTML字符串创建一个元素:

var objRadioElement = $('<input type="radio" name="rdUserDefined8" value="basketball" class="UDFRadioClass" disabled>');

没有jQuery你可以采取的一个捷径是创建一个容器元素,用你的HTML字符串设置它的innerHTML属性,然后从那里获取元素:

var container = document.createElement('div');
container.innerHTML = '<input type="radio" name="rdUserDefined8" value="basketball" class="UDFRadioClass" disabled>';
var radioElement = container.firstChild;