Por que a porra do getElementsByName não funciona no IE !?!?!?!?
Duvidou???
Toma o tira-teima:
<html>
<body>
<div name="duv">ttttttt</div>
<div name="duv">ewaffew</div>
<div name="duv">1111111</div>
<input type="radio" name="as" value="1">1
<input type="radio" name="as" value="2">2
</body>
</html>
<script>
var _Name = "duv";
var Elements = document.getElementsByName(_Name);
alert(_Name + ' ' + Elements.length);
var _Name = "as";
var Elements = document.getElementsByName(_Name);
alert(_Name + ' ' + Elements.length);
</script>


4 Comments:
Olha, meu velho...
Deve ser pq o atributo name não é válido em um elemento div...
Antes que vc me xingue por defender o IE: eu realmente acho o IE uma bos**, praticamente só uso Mozilla. Sou completamente contra o IE, e tenho duas camisetas do Firefox :). Mas tbém não podemos culpar o pobre browser banguela da M$ por não entender nossas maluquices fora dos padrões.
Tentei pensar numa sugestão de outra forma de resolver isso em poucas linhas de código, mas no IE não tem como mesmo. É uma pena. Se o problema fosse o Firefox, vc teria ainda XPath, se precisasse.
Ahn. Uma sugestão é usar:
<duv><div>dhrkhfkr</div></duv>
E depois usar:
document.getElementsByTagName('duv');
Feio... Mas funciona em qquer browser.
Boa sorte!
Bom, depois q o projeto de CSS3Selectors estiver pronto poderemos facilmente implementar algo do genero
document.getElementsByCSSRule("div[name='duv']")
hehehe.
A propósito...
Esse <script> aí no meio do teu post tá dando pau no meu RSS Reader :(
Dá pra trocar por <script> ?
"Deve ser pq o atributo name não é válido em um elemento div..."
Não parece ser o que a W3C diz a respeito...
De que adianta a W3C se o maior fornecedor de browsers não respeita as regras definidas?
O que eu mais falo ultimamente é "Mas funciona tão bem em Firefox..."
Postar um comentário
<< Home