Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.08.2012, 01:48
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 16.12.2011
Сообщений: 4,415

именна для id
решил я сделать велосипед и когда я ввел класс а потом Id на русском я был жестоко удивлен
я думал что id должен быть на английском
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
    
    <div id='че за ...?' class='че за ...?'>как оно вообще работает?О_о</div>
    <script>

   alert( document.getElementById('че за ...?').innerHTML)  
alert(document.getElementsByClassName('че за ...?')[0].innerHTML)
      
    </script>

  </body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 20.08.2012, 02:02
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

cyber,
В старых версиях браузеров и ИЕ id на русском не проходит
Ответить с цитированием
  #3 (permalink)  
Старый 20.08.2012, 02:11
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 16.12.2011
Сообщений: 4,415

в ие8 проходит, а на все что ниже я забил=)
Ответить с цитированием
  #4 (permalink)  
Старый 20.08.2012, 02:12
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 16.12.2011
Сообщений: 4,415

еще хотел спросить, велосипед норм получился?

function $(selector) {
      
        
       var d = document; 
       
        
        if (!selector) return;
        
        function querySelector(){
        
          if(!d.querySelectorAll) return getEelemet();
             
            return d.querySelectorAll(selector);
        
        
        };
        
        function getEelemet () { 
        
        var selectorType = selector.match(/(#|\.|[A-Z]|[a-z]){1}/);  
        var match = selectorType[0]; 
       
          if (match[0] == '#') {
         return d.getElementById(selector.replace('#',''))
        
        }
        
         
        if (match == '.') {
         return d.getElementsByClassName(selector.replace('.',''))   
        }
        
         
          try{ 
            return d.getElementsByTagName(selector); 
          } catch (e) {
          
          return;
          } 
          
      }
        
        return querySelector();
      }
Ответить с цитированием
  #5 (permalink)  
Старый 20.08.2012, 23:54
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

а если так надо $("#id, #id2")?
Ответить с цитированием
  #6 (permalink)  
Старый 20.08.2012, 23:58
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

А если на странице 2 элемента с одним классом?
Ответить с цитированием
  #7 (permalink)  
Старый 20.08.2012, 23:59
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 16.12.2011
Сообщений: 4,415

Сообщение от platedz Посмотреть сообщение
а если так надо $("#id, #id2")?
да
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<script >
  
      function $(selector) {
      
        
       var d = document; 
       
        
        if (!selector) return;
        
        function querySelector(){
        
          if(!d.querySelectorAll) return getEelemet();
             
            return d.querySelectorAll(selector);
        
        
        };
        
        function getEelemet () { 
        
        var selectorType = selector.match(/(#|\.|[A-Z]|[a-z]){1}/);  
        var match = selectorType[0]; 
       
          if (match[0] == '#') {
            
         return d.getElementById(selector.replace('#',''))
        
        }
        
         
        if (match == '.') {
         return d.getElementsByClassName(selector.replace('.',''))   
        }
        
         
          try{ 
            return d.getElementsByTagName(selector); 
         
          } catch (e) {
          
          return;
          } 
          
      }
        
        return querySelector();
      }
  </script>

</head>
<body>



<a href="#" id="link">Ссылка с <i>подсказкой</i></a>
<a href="#" id="link2">Еще ссылка</a>

<script>

alert($('#link, #link2').length)
</script>

</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 22.08.2012, 21:05
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

<div id="id1">id1</div><div id="id2">id2</div>
<script> alert(document.getElementById("id1, id2").length); </script>

А почему так не работает?
Ответить с цитированием
  #9 (permalink)  
Старый 22.08.2012, 21:13
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 16.12.2011
Сообщений: 4,415

потому что скрипт по умолчанию использует querySelectorAll
http://learn.javascript.ru/searching...electorall-css
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Модуль для web-to-print проекта Anton2507 Работа 0 29.07.2012 10:35
добавление стилей для множества элементов ??? Общие вопросы Javascript 7 14.06.2012 00:50
Некорректная работа get(set)Attribute в IE для элементов img back to back Internet Explorer 15 09.06.2012 15:52
Переодическое обновление значений для графика, функция для обновления значений yupa87 Общие вопросы Javascript 0 09.07.2009 13:48