Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   скрыть содержимое div (https://javascript.ru/forum/misc/23917-skryt-soderzhimoe-div.html)

Livanderiaamarum 12.12.2011 11:53

function hide(){
			document.querySelectorAll('#id_content   кроме #123  ').className += " hidden" //добавляем класс скрытия
}
function show (){
			document.querySelectorAll('#id_content  кроме #123   ').className.replace(/\hidden\b/, ' '); //удаляем класс скрытия
}


тока селектор нормальный допишите, это уже с javascript не связано и я в этом на шарю))

по моему там что-то вроде ('#id_content not: #123 ')

devote 12.12.2011 12:10

('#id_content:not(#123)')

Livanderiaamarum 12.12.2011 12:33

ВНИМАНИЕ РЕШЕНИЕ

function hiide(_selector){
			var q = document.querySelectorAll(_selector)
			for(var i = 0; i < q.length; i++){
						q[i].style.display = 'none'
			}
}
function shoow (_selector){
			var q = document.querySelectorAll(_selector)
			for(var i = 0; i < q.length; i++){
						q[i].style.display = ''
			}
}


hide ("#id_content:not(#123)") // скрывает
show ("#id_content:not(#123)") // показывает


И ОТВЕТ НА ВОПРОС
да к любым элементам можно подбираться не зная не их id не их классов! Для этого существуют селекторы. это именно то что тебе стоит подучить. именно селекторы и передаются в функцию которую я написал и именно они и выбирают элементы. селекторы очень мощные. можно выбрать например все кроме пятого элемента в дочерних элементах нечетных дивов всех спанов с классом не равным 'блаблабла'

__________________________________________________ ______________________

devote 13.12.2011 01:53

ну вобще для его случая я допустил ошибку, нужно добавить пробел:
("#id_content :not(#123)")
А вообще querySelectorAll может вернуть null если селектор не верны.. а в ИЕ вообще Exception вылетает и скрипт останавливается... Но для простого понимания да, все чудно.

oAlina 10.05.2017 11:06

Скрыть детей
 
Цитата:

Сообщение от Livanderiaamarum (Сообщение 142178)
ВНИМАНИЕ РЕШЕНИЕ

function hiide(_selector){
			var q = document.querySelectorAll(_selector)
			for(var i = 0; i < q.length; i++){
						q[i].style.display = 'none'
			}
}
function shoow (_selector){
			var q = document.querySelectorAll(_selector)
			for(var i = 0; i < q.length; i++){
						q[i].style.display = ''
			}
}


hide ("#id_content:not(#123)") // скрывает
show ("#id_content:not(#123)") // показывает


И ОТВЕТ НА ВОПРОС
да к любым элементам можно подбираться не зная не их id не их классов! Для этого существуют селекторы. это именно то что тебе стоит подучить. именно селекторы и передаются в функцию которую я написал и именно они и выбирают элементы. селекторы очень мощные. можно выбрать например все кроме пятого элемента в дочерних элементах нечетных дивов всех спанов с классом не равным 'блаблабла'

__________________________________________________ ______________________

Помогите, пожалуйста, если надо скрыть именно детей, но не одного дива, а есть 3 дива, надо скрыть всех их детей. Как поменяется код выше?

Dilettante_Pro 10.05.2017 13:09

oAlina
Для скольких дивов вызовете функцию, столько и спрячете

<div id='parent1'>
   <div>Child 1-1</div>
   <div>Child 1-2</div>
   <span>hkhkhkh</span>
</div>
<div id='parent2'>
   <div>Child 2-1</div>
   <div>Child 2-2</div>
   <input type='text' value= 'lalala'>
</div>
<div id='parent3'>
   <div>Child 3-1</div>
   <div>Child 3-2</div>
</div>
<script>
function hideChilds(parentNode) {
     var childs = parentNode.childNodes;
     for(var i = 0; i < childs.length; i++) {
       if(childs[i] != '[object Text]') childs[i].style.display = 'none';
     }
}

hideChilds(document.querySelector('#parent1'));
hideChilds(document.querySelector('#parent2'));
</script>


Часовой пояс GMT +3, время: 11:34.