- 0
Обход дерева без "внуков"
- 
Similar Content- 
			
			By Super_Saimo
 Добрый день! Столкнулся с проблемой отображения информации из localStorage после перезагрузки страниц. Делаю to do list, добавление тасков, удаление проходит нормально, добавляются элементы в localStorage, но после перезагрузки список тасков пуст на странице. Сам код https://jsfiddle.net/zdbmsjv2/ Извиняюсь за чрезмерное количество комментариев. Писал для себя, чтобы не забыть потом.
 
- 
			
			By Super_Saimo
 Добрый день! Помогите разобраться с работой метода closest(). В приведенном примере https://jsfiddle.net/ymnjo3tc/ , я делаю все "по инструкции": беру дочерний элемент и проверяю наличие у него родительского при помощи данного метода. Но в ответ всегда ловлю один и тот-же Exception. Какие бы я не пробовал проверять элементы. В чем может быть проблема? Где я допускаю ошибку? Да и вообще, применим ли этот метод на практике? И в каких ситуациях?
 
- 
			
			By Libiros
 Решил использовать .webp для изображений на сайте, а также оптимизировать его через рекомендации google audits.
 Таким образом получилось следующее:
 <img src="image.webp" srcset="image-480.webp 480w, image-768.webp 768w, image-1024.webp 1024w" alt="alt" titile="title"/> Так как webp не поддерживается некоторыми браузерами, было решено использовать решение WebPJS.
 Теперь есть следующая проблема: решение заменяет атрибут src, но не трогает srcset. То есть изображения остаются неизменными и не отображаются.
 Есть следующая идея, но я, полагаю, это будет очень затратно в плане ресурсов, а также неизвестно, как это будет влиять на SEO (может, спасут теги <nofollow>?).
 Распарсить атрибут srcset Создать столько img-элементов, сколько указано изображений в атрибуте Зацепить у каждого измененный атрибут src Составить новый атрибут srcset и заменить его на первом img Остальные img будут помещены под тег nofollow с классом display:none; Пока описывал решение, подумал, что, возможно, это плохое решение в том плане, что тогда у меня возрастет количество запросов на сервер как раз на количество новосозданных img-элементов. Но не уверен, так ли это.
 
- 
			
			By Stojan
 Уважаемые форумчане!
 Просьба помочь со скриптом.
 Краткая информация о скрипте:
 1. Скрипт генерит 5 элементов img и добавляет их в один из двух пустых div.
 2. Скрипт копирует все элементы из одного div в другой, при этом удаляя один элемент img. Получаем 5 и 4 элемента img в двух div.
 До этого момента все гладко.
 Далее скрипт должен при нажатии на lastChild левого div, которым является один из img удалять всех child из обоих div и генерить уже 10 и 9 соответственно (по схеме выше).
 Или, при нажатии на любой другой child в div кроме последнего, выдавать сообщение.
 Вот проблема заключается в том, что не получается прописать событие onclick на последнем child'e одного из div, чтобы произошел вызов функции.
 Заранее благодарю за помощь.
 Это проблемный участок скрипта:
 """"
 theLeftSide.lastChild.onclick= function nextLevel(){
 // onclick.stopPropagation();
 numberOfFaces += 5;
 //delete all childNodes
 while(theBody.firstChild){theBody.removeChild(theB ody.firstChild);
 generateFaces();
 }}
 """"
 
 Весь скрипт:
 <!doctype html>
 <html>
 <head>
 <style>
 #rightSide { left: 500px;
 border-left: 2px solid black;
 width:500px; height:500px;
 position:absolute ;}
 #leftSide {width:500px; height:500px;position:absolute;}
 img{position:absolute;}
 </style>
 <meta charset="utf-8">
 <title>Matching Game</title>
 <script>
 numberOfFaces =5;
 theLeftSide=document.getElementById("leftSide");
 theRightSide =document.getElementById("rightSide");
 theBody = document.getElementsByTagName("body")[0];
 
 
 function generateFaces() {
 //1st for(i=1;i<=numberOfFaces;i++){
 //2nd
 var i=1;
 while(i<=numberOfFaces){
 //
 var image=document.createElement("img");
 image.src="smile.png";
 image.style.top=Math.floor(Math.random()*401)+"px";
 image.style.left=Math.floor(Math.random()*401)+"px";
 leftSide.appendChild(image);
 i++;
 }
 var leftSideImages = leftSide.cloneNode(true);
 leftSideImages.removeChild(leftSideImages.lastChild);
 rightSide.appendChild(leftSideImages);
 //part3 end
 
 }
 
 theLeftSide.lastChild.onclick= function nextLevel(){
 // onclick.stopPropagation();
 numberOfFaces += 5;
 //delete all childNodes
 while(theBody.firstChild){theBody.removeChild(theBody.firstChild);
 generateFaces();
 }
 }
 theBody.onclick = function gameOver() {
 alert("Game Over!");
 theBody.onclick = null;
 theLeftSide.lastChild.onclick = null;
 }
 </script>
 </head>
 <body onLoad="generateFaces()">
 <h1>Matching Game</h1>
 <p>Click on the extra smiling face on the left.</p>
 <div id="leftSide"></div>
 <div id="rightSide"></div>
 </body>
 </html>
 
 
- 
			
			By npofopr
 Я тут про адаптивный дизайн...
 Как вы делаете такую штуку:
 есть элемент .block-item, на 1024 он расположен внутри .header, а при 768px, этот блок переходит в .footer, ну т.е. в совсем другое место.
 
 Думаю не редко такое видели, в макетах.
 Вот и хочется услышать, как такое делается?
 Понятно конечно, что самое просто это дублировать :-) Т.е. делать 2 элемента, и там и там, и менять у них display: block на none и обратно, но это же не кошерно.
 
 Может скрипты какие то есть, для таких манипуляций? А может у jquery есть что то встроенное, решающее этот вопрос двумя строчками? :-)
 Нашел вот такую штуку intentionjs, но на сколько я понял, там то же самое дублирование. Хотя может я не просек фишку.
 
 
- 
			
			
 
         
	 
	 
	
Question
Evgen111
Есть страница с такой структурой
<div id="Start">
|
+—-<div>
| +——- произвольное количество тегов, в том числе <div>
| +——- произвольное количество тегов, в том числе <div>
|
+—-<DIV> Нужный тег
Нужно получить объект <DIV>, помеченный красным цветом.
Через GetElementById("Start").GetElementsByTag("DIV") не получается, т. к. из-за произвольного количества тегов в предыдущем теге <div>, номер нужного тега всегда разный. Но он всегда второй относительно тега <div id="Start">. Как программно получить ссылку на этот объект?
p.s. Программа на VBA, внешние библиотеки подключать нельзя.
Link to comment
Share on other sites
4 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.