Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.01.2011, 23:55
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

js поиск div'ов по их координатам top/left
реально сделать как-то так?

var diva = document.getElementById('box').style.top = '100px' && style.left = '50px';


чтобы оно присвоило переменной адрес этого дива если он есть а если нету - создало..
Ответить с цитированием
  #2 (permalink)  
Старый 17.01.2011, 00:08
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

ну по координатам можно див найти, а почему нет
Ответить с цитированием
  #3 (permalink)  
Старый 17.01.2011, 00:08
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

А просто проверка есть ли div с id==box чем плоха?
if(!document.getElementById('box')) {document.body.appendChild(document.createElement('div')).style.cssText="top:100px;left:50px;position:absolute'}

Последний раз редактировалось Aetae, 17.01.2011 в 00:12.
Ответить с цитированием
  #4 (permalink)  
Старый 17.01.2011, 00:10
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

не плоха, просто задал себе такой вопрос..колупал код пол-дня и ничерта не пашет..вот теперь интерестно как это сделать
Ответить с цитированием
  #5 (permalink)  
Старый 17.01.2011, 00:14
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

Сообщение от Aetae Посмотреть сообщение
А просто проверка есть ли div с id==box чем плоха?
if(!document.getElementById('box')) {document.body.appendChild(document.createElement('div')).style.cssText="top:100px;left:50px;position:absolute'}
Спасибо, это я понимаю. Интерестно существует ли вариант поиска по координатам?
Ответить с цитированием
  #6 (permalink)  
Старый 17.01.2011, 00:15
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

Тогда
if(document.elementFromPoint(100,50).className!="box") {document.body.appendChild(document.createElement('div')).style.cssText="top:100px;left:50px;position:absolute'}
//Проверку лучше делать по классу, чтоб наверняка выделить именно те элементы, что вам нужны.

Но вероятность 99%, что конкретно ваша проблeма решается другим способом.

\upd
ах да, elementFromPoint может вернуть также текстовую ноду, так что для использования надо будет немного усложнить.

Последний раз редактировалось Aetae, 17.01.2011 в 00:20.
Ответить с цитированием
  #7 (permalink)  
Старый 17.01.2011, 00:26
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

интерестно...но не то немного.
есть код
<div id="map" class="map">
<div id="box" class="box" style="margin-top:0px; margin-left:0px;"></div>
<div id="box" class="box" style="margin-top:100px; margin-left:200px;"></div>
</div>


надо найти див который margin-top:100px; margin-left:200px; и присвоить его адресс переменной
короче говоря поиск дива по параметрам его стиля)
Ответить с цитированием
  #8 (permalink)  
Старый 17.01.2011, 00:33
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

var computedStyle = element.currentStyle || window.getComputedStyle(element, null);

а, если стиль прописан inline-записью, то можно через style

Последний раз редактировалось Shaci, 17.01.2011 в 00:39.
Ответить с цитированием
  #9 (permalink)  
Старый 17.01.2011, 00:49
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

не понимаю...
Ответить с цитированием
  #10 (permalink)  
Старый 17.01.2011, 00:56
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

Сообщение от Jekel Посмотреть сообщение
интерестно...но не то немного.
есть код
<div id="map" class="map">
<div id="box" class="box" style="margin-top:0px; margin-left:0px;"></div>
<div id="box" class="box" style="margin-top:100px; margin-left:200px;"></div>
</div>
Нет такого кода. Id - уникальный идентификатор.

Сообщение от Jekel Посмотреть сообщение
надо найти див который margin-top:100px; margin-left:200px; и присвоить его адресс переменной
короче говоря поиск дива по параметрам его стиля)
Как-то так тогда:
function f(container){
  var div=container.getElementsByTagName('div'),i=div.length,style;
  while(i--){
    style=div[i].currentStyle||window.getComputedStyle(div[i], null);
    if(style.marginTop=='100px'&&style.marginLeft=='200px')return div[i]
  }
  return container.appendChild(document.createElement('div')).style.cssText="margin-top:100px;margin-left:200px'
}


Но ещё раз говорю: опишите решаемую задачу, гарантирую, что это должно делаться по другому.)

Последний раз редактировалось Aetae, 17.01.2011 в 01:02.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в строке другой подстроки средствами JS YAN Общие вопросы Javascript 13 23.07.2013 09:41
JS поиск Эдуард Ваши сайты и скрипты 1 31.03.2009 18:42