Показать сообщение отдельно
  #6 (permalink)  
Старый 20.09.2011, 13:52
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Триви, WTF ?

раз хотят они через жопу, пусть так и будет....


// кешируем тяжелые операции. 
// loop вынесена и может быть заменена, например, jQuery.each
var all  = document.getElementsByTagName("*"), loop = Array.prototype.every;

function getElementByIdWithoutCase( id ) {

        var element, idReg = new RegExp( id, "i" );
        
        // обходим все элементы и сравниваем их ИД без учета регистра.
        loop.call( all, function(el){
                
                 // если есть ID и он соотв. указанному без учёта регистра 
                 // то устанавливаем элемент и прекращаем цикл (return false)
                 return !(el.id && idReg.test( el.id) && (element=el));    
                
        });
        
        return element;
}

пример :
<body>
  <div id='idlowercase'></div>
  <span id='IDUPPERCASE'></span>
  <p id='idMixedCase'></p>
</body>

<script type="text/javascript">

var all  = document.getElementsByTagName("*"), loop = Array.prototype.every;

function getElementByIdWithoutCase( id ) {

        var element, idReg = new RegExp( id, "i" );
        
        loop.call( all, function(el){
                

                 return !(el.id && idReg.test( el.id) && (element=el));    
                
        });
        
        return element;
}


// func end. it's test.
var res = [];
[ 'idlowercase', 'IDUPPERCASE', 'idMixedCase' ].forEach(function(a,b){res.push((b=getElementByIdWithoutCase(a)).tagName+"#"+b.id)})
alert( res.join('\n') )
</script>


Сообщение от Gvozd Посмотреть сообщение
Ну, так объясни им что они не правы.
помните тему про рабов-программистов, которые начальству возразить не могут ?
Ответить с цитированием