我无法在IE中使用它:
这就是HTML代码的样子:
<p class="red">Red: <input type="text" id="red_input" value="0"></p>
id:document.getElementById('red_input');
我想只返回'红色'这个词。 它在FF中很有用,但在IE中却不行。
function error(id){
var prnt = id.parentNode,
parentColor = prnt.childNodes[0].textContent,
trimmed = parentColor.replace(/\s+/g,'').replace((/\:$/),"").toLowerCase();
return trimmed
}
在FF中它返回字符串'red' 在IE中,它返回'undefined is null or not object'。我认为这是'textContent'似乎在IE中不起作用。 有人有任何建议吗?
非常感谢任何帮助!
答案 0 :(得分:1)
在IE中你应该得到innerText
属性:
function error(id){
var prnt = id.parentNode.childNodes[0],
parentColor = prnt.textContent || prnt.innerText,
trimmed = parentColor.replace(/\s+/g,'').replace((/\:$/),"").toLowerCase();
return trimmed;
}
请注意,我使用了逻辑或运算符(||),因此如果textContent
未定义(或伪造),它将查找innerText
。
答案 1 :(得分:1)
对于跨浏览器解决方案,请尝试以下操作:
parentColor = prnt.innerHTML.substring(0, prnt.innerHTML.indexOf(':'));