2009-11-21 5 views
0

Je ne peux pas obtenir ce travail dans IE:Comment obtenir 'texte' de <p>texte <input type = » ...</p>

C'est ce que le code HTML ressemble: <p class="red">Red: <input type="text" id="red_input" value="0"></p>

id est dans ce cas. document.getElementById('red_input');

Je veux revenir seul le mot « rouge » Il fonctionne très bien dans FF, mais pas dans IE

.

Dans FF, il renvoie la chaîne 'red' Dans IE, il retourne 'undefined est null ou un objet'. J'ai pensé que c'est le 'textContent' qui ne semble pas fonctionner dans IE. Quelqu'un a-t-il des suggestions?

Toute aide très appréciée!

Répondre

1

Dans IE, vous devriez obtenir la propriété innerText:

function error(id){ 
    var prnt = id.parentNode.childNodes[0], 
     parentColor = prnt.textContent || prnt.innerText, 
     trimmed = parentColor.replace(/\s+/g,'').replace((/\:$/),"").toLowerCase(); 

    return trimmed; 
} 

Notez que je la logique ou l'opérateur (||), donc si textContent n'est pas défini (ou falsy), il va chercher le innerText.

+0

grands, super merci! C'est exactement ce que je cherchais! – patad

1

Pour une solution multi-navigateur, essayez ceci:

parentColor = prnt.innerHTML.substring(0, prnt.innerHTML.indexOf(':')); 
+0

merci tas ça a fonctionné parfaitement bien! – patad

Questions connexes