webForumDet fria alternativet

IE-strul

3 svar · 284 visningar · startad av hltm

hltmMedlem sedan nov. 2004438 inlägg
#1

Har lite problem med följande funktion:

<script type="text/javascript">
//<![CDATA[
function stripCity()	{
var list = document.getElementById("flightTopList");
var links = list.getElementsByTagName("a");
	for(i=0;i<links.length;i++) {
		content = links.item(i);
		var str = content.innerHTML;
		str = str.replace(/City/,''); 
		content.innerHTML = str;	
	}
}
stripCity();
//]]>
</script>

Länkexempel som ska strippas:

<div id="flightTopList">
	<ul>
		<li class="topListItem"><a href="link.html">New York City</a></li>
	</ul>
</div>

- Allt den ska göra är att rensa bort ordet City om det förekommer i en lista med länkar, funkar finfint i FF men inte i IE som sagt var - why is? (Dokumentet är XHTML 1.0 Transitional)

nitro2k01Medlem sedan aug. 20039 342 inlägg
#2
content = links[i];
hltmMedlem sedan nov. 2004438 inlägg
#3

Skumt - efter lite donande så funkar koden med:

var str = links[i].innerHTML;
str = str.replace(/City/,'');
links[i].innerHTML=str;

- Beror det på att variabelnamnet content på ngt sätt ogillas/är reserverat av IE?
- nitro2k01, Tack för hjälpen! :)

nitro2k01Medlem sedan aug. 20039 342 inlägg
#4

hltm skrev:

Skumt - efter lite donande så funkar koden med:

var str = links[i].innerHTML;
str = str.replace(/City/,'');
links[i].innerHTML=str;

- Beror det på att variabelnamnet content på ngt sätt ogillas/är reserverat av IE?
- nitro2k01, Tack för hjälpen! :)

Det du har gjort är bara att sätta ihop två rader till en, det har inget att göra med variabelnamnet content. Det hade gått lika bra med:

links[i].innerHTML = links[i].innerHTML.replace(/City/,'');

... även om det kan bli svårläst om man lägger för mycket på samma rad.

132 ms totalt · 3 externa anrop · v20260731065814-full.b943c234
129 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)