Я хочу сделать ярлык с переменной длиной $$(), чтобы я мог использовать ярлык, например $() [jquery], чтобы сохранить код в моем проекте (ВСЕ МОЙ КОД ИЗОБРАЖЕНИЯ JAVASCRIPT). , когда я помещаю строку id или class, все работает правильно, но когда я помещаю tagName, он показывает, что не может прочитать свойство 'style' undefined, кажется, что код прав, помогите, спасибоdocument.getElementsByTagName: Невозможно прочитать свойство 'style' of undefined
One более того, это способ определить переменную быстрого доступа $$() для правильного использования в чистой javascript-среде? или существует ли какая-либо передовая практика для определения такой глобальной переменной?
window.onload = function(){
\t function $$(ele){
\t \t var pattern1 = /#/g;
\t \t var pattern2 = /\./g;
\t \t var pattern3 = /!/g;
var matches = ele.match(/[^#\.!]/g);//array
var elementS = matches.join("");
//alert(matches+elementS);
// console.log(document.getElementsByTagName(elementS));
var spaceExist = /\s/.test(elementS)
\t \t if(pattern1.test(ele)){
\t \t \t return document.getElementById(elementS);
\t \t }else if(pattern2.test(ele)){
\t \t \t //console.log(elementS);
\t \t \t return document.getElementsByClassName(elementS);
\t \t }else if(pattern3.test(ele)){
\t \t \t alert('hi');
\t \t \t console.log(elementS);
\t \t \t return document.getElementsByTagName(elementS);
\t \t }else if(spaceExist){
\t \t \t return document.querySelectorAll(elementS);
\t \t }
\t }
\t $$('#hme').style.backgroundColor = 'red';
\t $$('.myp')[0].style.backgroundColor = 'green';
\t $$('!h2')[0].style.display = 'none';//this not work,shows Cannot read property 'setAttribute' of undefined
}
\t <h1 id="hme">hi,friend</h1>
\t <p class="myp">mmdfdfd</p>
\t <h2>hhhhhh</h2>
Обратите внимание, что точка имеет особое значение в регулярном выражении, она соответствует любому символу. Если вы хотите совместить '.' буквально, вам нужно сбежать от него с помощью обратного слэша:' \ .'. –
@ Gothdo, просто исправьте его и все еще не можете исправить мою проблему, спасибо – franklee