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

mcavalon 11.12.2011 23:18

скрыть содержимое 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?

ksa 12.12.2011 09:20

Цитата:

Сообщение от mcavalon
как мне скрыть в диве с id=id_content все кроме дива с id=123?

Как вариант...

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

mcavalon 12.12.2011 11:12

так это применится ко всем талблицам в CMS, а мне такого не надо

devote 12.12.2011 11:18

Цитата:

Сообщение от mcavalon
так это применится ко всем талблицам в CMS, а мне такого не надо

Он жеж указал что бы тока коренные детишки прятались этого дива
Цитата:

Сообщение от ksa
#id_content > table

вот знак ">" говорит тока к детишкам применить.

mcavalon 12.12.2011 11:30

так <div id="id_content"> и <table class="admin_table" ...> формирует cms и они везде

mcavalon 12.12.2011 11:32

решил так сделать. под своим <div id="123">...</div> создал незакрывающийся <div id='other' style='display: none;'>
другого выхода я не нашел

Livanderiaamarum 12.12.2011 11:41

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

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 12.12.2011 11:44

Цитата:

Сообщение от Livanderiaamarum
Существует функция позволяющая обращаться к элементам по селетору БЕЗ фреймворков, только я её забыл)

querySelector, querySelectorAll
Но в старых браузерах ее нет, в ИЕ ниже 8-й версии нету. Да и в ИЕ8 она не полноценно работает, хотя простые селекторы обрабатывает

Livanderiaamarum 12.12.2011 11:45

Цитата:

Сообщение от devote (Сообщение 142179)
querySelector, querySelectorAll
Но в старых браузерах ее нет, в ИЕ ниже 8-й версии нету.

и что? значит эти браузеры не поддержат этот алгоритм, и пользователи подумают "вот говенные браузер у меня" и поменяют их на хром.
ну если уж нужна совместимость тогда пусть юзает фреймворки, или я не прав? я же не буду тут распиывать самодельный движок выборки селекторов???

devote 12.12.2011 11:47

Цитата:

Сообщение от Livanderiaamarum
я же не буду тут распиывать самодельный движок выборки селекторов???

Никто и не заставляет.


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