Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   принадлежность ссылки к строке (https://javascript.ru/forum/misc/18460-prinadlezhnost-ssylki-k-stroke.html)

ChikiSt 01.07.2011 15:42

принадлежность ссылки к строке
 
Здравствуйте, подскажите пожалуйста как с помощью JS определить находится ли ссылка 'a' в строке 'div'
Например
if (document.getElementsByTagName('div')[i]).contains(document.getElementsByTagName('a')[y]) { }
Здесь определяется содержит ли строка 'div' элемент с тегом 'a' . Мне нужно что-то типа этого, только наоборот - находится ли 'a' в 'div'. Существуют ли какие-нибудь способы?

ksa 01.07.2011 16:09

ChikiSt, в твоём примере 'a' и 'div' не строки...

ChikiSt 01.07.2011 16:34

ну попробую объяснить подробней...
имеется код, типа этого
<div>
<div style="display:none">
<a href="www.link1...</a>
</div>
<a href="www.link2...</a>
</div>

мне нужно найти все ссылки, исключая ссылки, находящиеся в div'е со стилем "display:none". Как это можно осуществить?

ksa 01.07.2011 22:00

Цитата:

Сообщение от ChikiSt
Как это можно осуществить?

Берешь первый дочерний элемент и погнал проверять "это элемент 'a'?", потом берешь соседний элемент и цикл замкнулся, пока есть соседние элементы.
Так все ссылки и соберёшь...

ChikiSt 01.07.2011 23:01

Пробовал делать так...
for(var y=0;y<document.getElementsByTagName('div').length; y++)
{
for (var i=0;i<document.links.length;i++)
{
if ((document.getElementsByTagName('div')[y].contains(document.getElementsByTagName('a')[i]))&&(document.getElementsByTagName('div')[y].style.display!='none'))
{

}
}
}
но в результате отбираются все ссылки, так как они входят в вервый 'div'.

trikadin 01.07.2011 23:29

<div id="div"><a id="a" href="javascript: void()">Ссылка</a></div>
<script>
a= document.getElementById("a");
div= document.getElementById("div");
while(a=a.parentNode)
 {
  if (a === div) {
   alert("'a' in 'div'");
   break;
  };
 };
</script>

ChikiSt 01.07.2011 23:45

ksa, trikadin, Спасибо вам большое, выручили :)


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