- 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.