Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.04.2014, 10:13
Интересующийся
Отправить личное сообщение для werty1001 Посмотреть профиль Найти все сообщения от werty1001
 
Регистрация: 21.12.2012
Сообщений: 23

getAttribute в ослике 8
Здравствуйте, подскажите в чем может быть проблема, с данным кодом в ie8:

ссылка на jsfiddle или

(function() {
      
var show = document.querySelectorAll('[data-show]');
var div =  document.querySelectorAll('[data-div]');
    
for (var i=show.length; i--;) {
    
if (!show[i].addEventListener) {
    
    show[i].attachEvent("onclick", function() {document.querySelector("[data-div="+ this.getAttribute('data-show') +"]").style.display = 'none';});
   
} else {
    
    show[i].addEventListener("click", function() { document.querySelector("[data-div="+ this.getAttribute('data-show') +"]").style.display = 'none';});
    
       }   
    
} // for
    
})(); // end

<span data-show="val">раз</span> <br /><br />

<span data-show="valval">два</span> <br /><br />

<div data-div="val">блок val</div> <br /><br />
<div data-div="valval">блок valval</div>


Гуглил долго, но понять так и не могу, что не так. Если установить значение атрибута в id элемента - работает, значит ослик понимает команду "getAttribute". JS начал осваивать недавно, может какой банальности не замечаю?
Ответить с цитированием
  #2 (permalink)  
Старый 07.04.2014, 10:36
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,226

Сообщение от werty1001
значит ослик понимает команду "getAttribute"
8-го нет под рукой... А в 9-том работает

<!DOCTYPE html>
<html>
<head>
<!--
<script src='http://code.jquery.com/jquery-latest.js'></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
function test() {
	alert(document.getElementById('test').getAttribute('data-value'));
};
</script>
</head>
<body>
<div id='test' data-value='data'></div>
<button onclick='test();'>Test</button>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 07.04.2014, 10:49
Интересующийся
Отправить личное сообщение для werty1001 Посмотреть профиль Найти все сообщения от werty1001
 
Регистрация: 21.12.2012
Сообщений: 23

Сообщение от ksa Посмотреть сообщение
8-го нет под рукой... А в 9-том работает
Я в 10 в режиме совместимости проверяю и в ietester еще. В IE9 мой код работает и Ваш пример естественно тоже. В IE8 ваш пример работает, а вот мой уже нет. В моем коде в IE10(в режиме IE8) в консоли при клике на <span> выдает "Объект не поддерживает свойство или метод "getAttribute". Но ваш пример работает значит дело в другом.
Ответить с цитированием
  #4 (permalink)  
Старый 07.04.2014, 11:08
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,226

Сообщение от werty1001
при клике на <span> выдает "Объект не поддерживает свойство или метод "getAttribute". Но ваш пример работает значит дело в другом
Так у меня ДИВ, не СПАН... Если поменять, мой пример так же работает в 8-м ИЕ?
Ответить с цитированием
  #5 (permalink)  
Старый 07.04.2014, 11:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

werty1001,
а так?
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title> - jsFiddle demo by werty1001</title>
 <script type='text/javascript'>
window.onload=function(){
(function() {

var show = document.querySelectorAll('[data-show]');
var div =  document.querySelectorAll('[data-div]');

for (var i=show.length; i--;) {

if (!show[i].addEventListener) {

    show[i].attachEvent("onclick",(function(el) { return function() {document.querySelector("[data-div="+ el.getAttribute('data-show') +"]").style.display = 'none';}})(show[i]));

} else {

    show[i].addEventListener("click", function() { document.querySelector("[data-div="+ this.getAttribute('data-show') +"]").style.display = 'none';});

       }

}

})();
}

</script>


</head>
<body>
  <span data-show="val">раз</span> <br /><br />

<span data-show="valval">два</span> <br /><br />

<div data-div="val">блок val</div> <br /><br />
<div data-div="valval">блок valval</div>

</body>


</html>
Ответить с цитированием
  #6 (permalink)  
Старый 07.04.2014, 14:05
Интересующийся
Отправить личное сообщение для werty1001 Посмотреть профиль Найти все сообщения от werty1001
 
Регистрация: 21.12.2012
Сообщений: 23

Сообщение от ksa Посмотреть сообщение
Так у меня ДИВ, не СПАН... Если поменять, мой пример так же работает в 8-м ИЕ?
Да

рони,
Спасибо, так работает. Плюс в карму что-не пашет. Еще раз спасибо.
Ответить с цитированием
  #7 (permalink)  
Старый 07.04.2014, 14:13
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,226

Сообщение от werty1001
Плюс в карму что-не пашет.
По законам этого леса (с) одному человеку не дают несколько раз подряд ставить +/-... Вот другим наставишь - тогда опять разрешат...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не верный getAttribute JustCrazy Элементы интерфейса 3 23.12.2012 17:19
Не работает в хроме и ослике. kirys0 AJAX и COMET 4 08.09.2010 22:45