Проблема с getElementByID в ie6 и ie7. 
		
		
		
		Доброго времени суток. У меня возникла проблема с работой функции в ie6-7, причем, как я заметил, до добавления в html-код страницы тегов form/input, эта функция работала и в этих браузерах. Догадываюсь я, проблема кроется в методе getElementByID. 
	Кратенько: вот на примере этого кода: <p><a href="go_blabla1.php" id="a1">blabla1</a></p> <p><a href="go_blabla2.php" id="a2">blabla2</a></p> <p><a href="go_blabla3.php" id="a3">blabla3</a></p> <p><a href="go_blabla4.php" id="a4">blabla4</a></p> эта функция делала свое дело: 
function checkHref() {
// получаю текущий адрес страницы
	var fullHref = location.href.toString()
// убираю все лишнее
	var num = fullHref.indexOf('go_')
	var shortHref = fullHref.substring(num)
// пробегаюсь по ссылкам, сравниваю каждую с полученной ранее строкой
		for (var i = 1;i <= 4;i++) {
			var lnk = document.getElementById('a' + i)
			if (shortHref == lnk.getAttribute('href'))
			{
// если нашлась, произвожу с ней некие действия...
				var curString = lnk.firstChild.nodeValue.toString()
				var curParent = lnk.parentNode
				curParent.removeChild(lnk)
				var newElem = document.createElement('span')
				newElem.style.color = '#f0a43a'
				newElem.innerHTML = curString
				curParent.appendChild(newElem)
			}
		}
}
А когда в коде появились теги form и input, семейство ie до 7 версии включительно, перестали выполнять задуманное, между прочим ошибок при этом они тоже не выдают. Спасибо.  | 
	
		
 Телепаты в отпуске 
	как мы по-вашему можем сказать почему у вас не работает код, если вы выложили только работающий?  | 
	
		
 Исправляюсь... 
	Функция везде одна, вот с таким HTML работает: 
<div>
  <div>
    <p><a href="go_blabla1.php" id="a1">blabla1</a></p>
    <p><a href="go_blabla2.php" id="a2">blabla2</a></p>
    <p><a href="go_blabla3.php" id="a3">blabla3</a></p>
    <p><a href="go_blabla4.php" id="a4">blabla4</a></p>
  </div>
</div>
Вот с таким HTML не работает в ie6-7: 
<div>
  <div>
    <p><a href="go_blabla1.php" id="a1">blabla1</a></p>
    <p><a href="go_blabla2.php" id="a2">blabla2</a></p>
    <p><a href="go_blabla3.php" id="a3">blabla3</a></p>
  </div>
  <div>
    <form>
      <input />
      <div>
      </div>
    </form>
    <div>
      <p><a href="go_blabla4.php" id="a4">blabla4</a></p>
    </div>
  </div>
</div>
 | 
	
		
 Попробуйте так заменить код в условии: 
	
// если нашлась, произвожу с ней некие действия...
var curString = lnk.firstChild.nodeValue.toString();
var curParent = lnk.parentNode;
var newElem = document.createElement('span');
var newText = document.createTextNode(curString);
newElem.appendChild(newText);
newElem.style.color = '#f0a43a';
curParent.replaceChild(newElem, lnk);
break; // тоже не забывайте чтобы лишнее не проверять
 | 
	
		
 Цитата: 
	
 По теме я нашел следующее: Цитата: 
	
 http://remysharp.com/2007/02/10/ie-7...etelementbyid/ Я вообще в form и input атрибут name не использовал, равно как и div внутрь form не вкладывал, а функция в осликах все равно не работает.  | 
	
		
 Form тут ни при чем. Просто в IE атрибут href возвращает полностью. Надо его тоже обрезать: 
	
var h1, n1;
		for (var i = 1;i <= 4;i++) {
			var lnk = document.getElementById('a' + i)
			if (!lnk) continue;
		    h1 = lnk.getAttribute('href');//alert(h1);
	         n1 = h1.indexOf('go_')
	         h1 = h1.substring(n1) //alert(h1);			
			if (shortHref == h1 )
			{
// если нашлась, произвожу с ней некие действия...
Ваш первый код тоже работает нормально. Заметили то что в комментариях: //alert(h1); очень помогает при отладке - выяснить в чем дело.  | 
	
		
 Большое спасибо за то, что потратили свое время на меня. Благодаря Вам, я во всем разобрался. 
	 | 
| Часовой пояс GMT +3, время: 08:59. |