Занимаюсь изучением javascript путем изобретения детских велосипедов. Решил написать функции, которые ищут, добавляют и удаляют классы у тэгов. Регулярные выражение пока не осилил, поэтому обходился циклами и массивами.
Подскажите, как можно оптимизировать, сократить или ускорить этот код?
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Портфолио https://www.behance.net/d4d4186e
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Портфолио https://www.behance.net/d4d4186e
Question
Bassline
Занимаюсь изучением javascript путем изобретения детских велосипедов. Решил написать функции, которые ищут, добавляют и удаляют классы у тэгов. Регулярные выражение пока не осилил, поэтому обходился циклами и массивами.
Подскажите, как можно оптимизировать, сократить или ускорить этот код?
http://jsfiddle.net/UZ3DQ/
window.onload = function(){ classRemove('добавитьКласс', 'найтиПоКлассу', 'найтиПоТэгу'); classAdd('удалитьКласс', 'найтиПоКлассу', 'найтиПоТэгу'); function classAdd(desiredClass, searchClass, searchTags) { var pointElements = searchElements(searchClass, searchTags); outer: for (var i = 0; i < pointElements.length; i++) { var classWords = pointElements[i].className.split(' '); var classString = ''; for (var j = 0; j < classWords.length; j++) { if (classWords[j] == '') { classWords.splice(j, 1); j--; }; }; for (var k = 0; k < classWords.length; k++) { if (classWords[k] == desiredClass) { break outer; }; }; classWords.push(desiredClass); classString = classWords.join(' '); pointElements[i].className = classString; } } function classRemove(desiredClass, searchClass, searchTags) { var pointElements = searchElements(searchClass, searchTags); for (var i = 0; i < pointElements.length; i++) { var classWords = pointElements[i].className.split(' '); var classString = ''; for (var j = 0; j < classWords.length; j++) { if (classWords[j] == desiredClass || classWords[j] == '') { classWords.splice(j, 1); j--; }; }; classString = classWords.join(' '); pointElements[i].className = classString; } } function searchElements(desiredClass, desiredTag) { var allTags = document.body.getElementsByTagName(desiredTag); var rightTags = []; var classWords = []; for (var i = 0; i < allTags.length; i++) { classWords = allTags[i].className.split(' '); for (var j = 0; j < classWords.length; j++) { if (classWords[j] == desiredClass) { rightTags.push(allTags[i]); break; }; }; }; return rightTags; };}Link to comment
Share on other sites
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.