Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   document.getElementById(...) - проблемы в ie (https://javascript.ru/forum/css-html-internet-explorer/27955-document-getelementbyid-problemy-v-ie.html)

cdrr 01.05.2012 09:53

document.getElementById(...) - проблемы в ie
 
:help:
всем доброго времени суток!
к сожалению я очень плохо разбираюсь в яваскрипт, поэтому нужна ваша помощь.
вот данный файл: http://ruslan.internet.az/jsmenu/index.html
здесь при щелчке на какой-нибудь раздел меню его название сразу отображается в главном контенте. во всех браузерах, кроме IE!!!!!!!!!
IE при клике на разделы меню постоянно выдает ошибку, что document.getElementById(...) не действителен либо не явл-ся объектом.
var toggle1 = function () {

	var currentDiv = null;

        function open(divElement, linkId) {
            divElement.style.display = "block";
            currentDiv = divElement;
            var titleElement = document.getElementById("title");
            titleElement.textContent = document.getElementById(linkId).textContent;
        }

        function close(divElement) {
            divElement.style.display = "none";
            currentDiv = null;
        }

        return function (divID, linkId, source) {
            // alert('link value ' + document.getElementById(linkId).textContent);
            var divElement = document.getElementById(divID);
            if (divElement) {
                if (currentDiv != null) close(currentDiv);
                open(divElement, linkId);

                document.getElementById("selected").setAttribute("source", source);
                reloadGrid();
            }
        }
    }();

объясните пожалуйста что на этом участке не так
document.getElementById("selected").setAttribute(" source", source);
:help:

<div id="middle">
<div id="menu">
  <div class="vertMenu" onMouseOver="this.className='vertMenuOver'" onMouseOut="this.className='vertMenu'">
  <a id="html" href="javascript://" onClick="toggle1('div1', 'html', 1)">HTML</a>
      <div class="myDiv" id="div1">HTML</div>
  </div>
  
  <div class="vertMenu" onMouseOver="this.className='vertMenuOver'" onMouseOut="this.className='vertMenu'">
  <a id="css" href="javascript://" onClick="toggle1('div2', 'css', 2);">CSS</a>
      <div class="myDiv" id="div2">CSS</div>
  </div>
  
  <div class="vertMenu" onMouseOver="this.className='vertMenuOver'" onMouseOut="this.className='vertMenu'">
  <a id="php" href="javascript://" onClick="toggle1('div3', 'php', 3);">PHP</a>
      <div class="myDiv" id="div3">PHP</div>
  </div>
  
  <div class="vertMenu" onMouseOver="this.className='vertMenuOver'" onMouseOut="this.className='vertMenu'">
  <a id="js" href="javascript://" onClick="toggle1('div4', 'js', 4);">JS</a>
      <div class="myDiv" id="div4">JS</div>
  </div>
</div>
<div id="content">
  <p id="title">Hello World!</p>
</div>
</div>

cdrr 01.05.2012 10:20

изначально было "selectedOperation"

результат тот же

Pavel M. 01.05.2012 10:24

Цитата:

Сообщение от cdrr
объясните пожалуйста что на этом участке не так
document.getElementById("selected")

я на странице http://ruslan.internet.az/jsmenu/index.html
не вижу элемента с id="selected"

правильно браузеры ругаются

cdrr 01.05.2012 10:30

так во всех браузерах корректно! только ИЕ глючит!
дело в том что код не мой - дали задание исправить.
но я уже весь нэт облазила, понятия не имею как его переделать.
что делать с этим "selected"?

Pavel M. 01.05.2012 10:38

Цитата:

Сообщение от cdrr
так во всех браузерах корректно! только ИЕ глючит!

откройте страницу http://ruslan.internet.az/jsmenu/index.html например в Хроме откройте консоль и покликайте по ссылкам - увидите ошибки

cdrr 01.05.2012 10:38

кстати, при включении данной команды:
alert('link value ' + document.getElementById(linkId).textContent);
ИЕ его тоже не распознает
return function (divID, linkId, source) {
            // alert('link value ' + document.getElementById(linkId).textContent);
            var divElement = document.getElementById(divID);
            if (divElement) {
                if (currentDiv != null) close(currentDiv);
                open(divElement, linkId);

                document.getElementById("selected").setAttribute("source", source);
                reloadGrid();
            }

http://ruslan.internet.az/jsmenu/index1.html

Pavel M. 01.05.2012 10:43

textContent понимает только ie9-10

cdrr 02.05.2012 10:34

http://ruslan.internet.az/jsmenu/index4.html

наверно уже не по теме, но вот нашла один вариант, переделала немного под себя.
в браузерах вроде ошибок не показывает.

здесь при клике на ссылку появляется новый блок (НУЖНО)
но если кликнуть второй раз - исчезает (НЕ НУЖНО)
если кликать на ссылки подряд (сверху вниз) - блоки поочередно меняются, каждый соответствующий своей ссылке (НУЖНО)
но если нажать н-р сначала на 3-ю ссылку, а потом на 1-ю, то там уже глюк (НЕ НУЖНО)

помогите пожалуйста

p.s.: также хотела узнать как правильно записать код чтоб при клике на ссылку она выделялась до тех пор пока не кликну на другую

заранее спс.

cdrr 02.05.2012 11:24

http://javascript.ru/forum/misc/2798...avaskript.html


Часовой пояс GMT +3, время: 12:04.