Autor Zpráva
SwimX
Profil
Využívám
<span name='dot'> dot </span>
<script>
  document.getElementsByName('dot')[0].innerHTML = '.';
</script>

IE ale nefunguje. Vím, že je to tím, že atribut name ke spanu nepatří, ale jak jinak to udělat? Jde mi o nahrazování zavináčůů a teček v emailu. Těch je na stránce několik, tak jsem to řešil takle. V IE ale záměna neproběhne.


Děkuji za každou radu, JS není má stránka.
Chamurappi
Profil
Reaguji na SwimXe:
Použij atribut id a metodu document.getElementById (ta nevrací pole, ale jen jeden element).
SwimX
Profil
Chamurappi:
já mám na stránce několik emailů.
Každý ve tvaru
email<span name='change_at'> (<i>zavináč</i>) </span>gmail<span name='change_dot'> (<i>tečka</i>) </span>com

a fci
function make_emails(){
	var pole = document.getElementsByName('change_at');
	for(var i = 0, poc = pole.length; i < poc; i++){
		if(pole[i]) {
			pole[i].innerHTML = '@';
		}
	}	
	pole = document.getElementsByName('change_dot');
	for(var i = 0, poc = pole.length; i < poc; i++){
		if(pole[i]) {
			pole[i].innerHTML = '.';
		}
	}
}


to bych ji musel volat pro každé id zvlášť? To se mi nechce.
sysel
Profil
MSIE sice u <span>u podle atributu name nehledá *), ale atribut sám nemaže, takže si myslím, že by šlo posbírat všechny <span>y metodou getElementsByTagName('span') a v cyklu si vybrat jen ty, které mají atribut name=='dot'. Kromě toho, sběr může být omezen na určitou podskupinu kupř. formular.getElementsByTagName()

*) myslím, že MSIE úzkoprse očekává atribut name jen u položek <form>u
SwimX
Profil
Nakonec jsem to udělal tedy takle:

skola<i class='change_at'> (zavináč) </i>email<i class='change_dot'> (tečka) </i>cz

<script>make_emails();</script>


<script>function make_emails(){
	pole = document.getElementsByTagName('i');
	for(var i = 0, poc = pole.length; i < poc; i++){
		if(pole[i].className=='change_at') {
			pole[i].innerHTML = '@';
		}
		else
			if(pole[i].className=='change_dot') {
				pole[i].innerHTML = '.';
			}	
	}
}</script>
Witiko
Profil
SwimX: Přijde mi hloupost používat na identifikaci atribut určený k definici css stylů a . Použil bych ten první kód, který vám nefungoval v MSIE a implementoval bych si vlastní getElementsByName funkci, která pojede i pod MSIE:

Poslední příspěvek v této diskuzi, autor se jen přepsal a jméno funkce napsal getElementByName místo getElementsByName:
http://diskuse.jakpsatweb.cz/?action=vthread&topic=61403&forum=8&page=-1

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0