скрыть содержимое div
добрый вечер.
надеюсь на вашу помощь. ситуация следующая: есть <div id="id_content"> <div id="123"> ... </div> <table class="admin_table" width="100%" cellspacing="2" cellpadding="2"> <table class="light_table" width="100%" cellspacing="0" cellpadding="5" border="1" style="margin-top: 8px;"> </div> как мне скрыть в диве с id=id_content все кроме дива с id=123?:help: :help: :help: к таблицам не могу прописать id,т.к. формирую не я а CMS. можно ли подобраться к таблицам не зная id? |
Цитата:
<style type="text/css">
#id_content > table {
display: none;
}
</style>
<div id="id_content">
<div id="123">
...
</div>
<table class="admin_table" width="100%" cellspacing="2" cellpadding="2">
<td>Test 1</td>
</table>
<table class="light_table" width="100%" cellspacing="0" cellpadding="5" border="1" style="margin-top: 8px;">
<td>Test 2</td>
</table>
</div>
|
так это применится ко всем талблицам в CMS, а мне такого не надо
|
Цитата:
Цитата:
|
так <div id="id_content"> и <table class="admin_table" ...> формирует cms и они везде
|
решил так сделать. под своим <div id="123">...</div> создал незакрывающийся <div id='other' style='display: none;'>
другого выхода я не нашел |
ВНИМАНИЕ РЕШЕНИЕ
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 не их классов! Для этого существуют селекторы. это именно то что тебе стоит подучить. именно селекторы и передаются в функцию которую я написал и именно они и выбирают элементы. селекторы очень мощные. можно выбрать например все кроме пятого элемента в дочерних элементах нечетных дивов всех спанов с классом не равным 'блаблабла' __________________________________________________ ______________________ |
Цитата:
querySelector, querySelectorAllНо в старых браузерах ее нет, в ИЕ ниже 8-й версии нету. Да и в ИЕ8 она не полноценно работает, хотя простые селекторы обрабатывает |
Цитата:
ну если уж нужна совместимость тогда пусть юзает фреймворки, или я не прав? я же не буду тут распиывать самодельный движок выборки селекторов??? |
Цитата:
|
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 ') |
('#id_content:not(#123)')
|
ВНИМАНИЕ РЕШЕНИЕ
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 не их классов! Для этого существуют селекторы. это именно то что тебе стоит подучить. именно селекторы и передаются в функцию которую я написал и именно они и выбирают элементы. селекторы очень мощные. можно выбрать например все кроме пятого элемента в дочерних элементах нечетных дивов всех спанов с классом не равным 'блаблабла' __________________________________________________ ______________________ |
ну вобще для его случая я допустил ошибку, нужно добавить пробел:
("#id_content :not(#123)")
А вообще querySelectorAll может вернуть null если селектор не верны.. а в ИЕ вообще Exception вылетает и скрипт останавливается... Но для простого понимания да, все чудно. |
Скрыть детей
Цитата:
|
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, время: 14:45. |