如何从<p>文本</p>中获取“文本”

时间:2009-11-21 15:20:12

标签: javascript html internet-explorer

我无法在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中不起作用。 有人有任何建议吗?

非常感谢任何帮助!

2 个答案:

答案 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(':'));