Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.02.2012, 11:44
Новичок на форуме
Отправить личное сообщение для Cryolite Посмотреть профиль Найти все сообщения от Cryolite
 
Регистрация: 24.02.2012
Сообщений: 4

Обратиться к элементу DOM, добавленному JS
Доброго времени суток.
У меня такая проблема:
Генерируется список с помощью JS (Jquery) вида

<div id="list">
<p id="data1">dataText1</p>
...
<p id="dataN">dataTextN</p>
</div>

Изначально на странице есть <div id="list"></div>

Мне нужно обратиться по id к элементу и извлечь содержимое. Такое возможно? Обращался к существующим элементам - проблем нет. А вот к созданным...

UPD.
C помощью ajax запроса в <select id="select"></select> записываются <option value="dataN">Text</option>. Оставшаяся часть данных попадает в <div id="list"></div> в виде <p id="dataN">dataTextN</p>
ajax выполняется при загрузке страницы ($(document).ready..), вторая функция при изменении значения select.
Если подскажите простенький пример буду благодарен.

установка setTimeout также не помогла

Последний раз редактировалось Cryolite, 24.02.2012 в 12:31.
Ответить с цитированием
  #2 (permalink)  
Старый 24.02.2012, 11:52
Аватар для DreamTheater
Профессор
Отправить личное сообщение для DreamTheater Посмотреть профиль Найти все сообщения от DreamTheater
 
Регистрация: 15.02.2011
Сообщений: 471

Сообщение от Cryolite Посмотреть сообщение
Мне нужно обратиться по id к элементу и извлечь содержимое. Такое возможно? Обращался к существующим элементам - проблем нет. А вот к созданным...
Возможно.
Ответить с цитированием
  #3 (permalink)  
Старый 24.02.2012, 11:58
Новичок на форуме
Отправить личное сообщение для Cryolite Посмотреть профиль Найти все сообщения от Cryolite
 
Регистрация: 24.02.2012
Сообщений: 4

Стандартным способом document.getElementById(''dataN') не срабатывает, по дереву от "list" тоже , но мне подходит только по идентификатору, т.к я не знаю места расположение нужного мне элемента в списке.
Ответить с цитированием
  #4 (permalink)  
Старый 24.02.2012, 14:05
Новичок на форуме
Отправить личное сообщение для Cryolite Посмотреть профиль Найти все сообщения от Cryolite
 
Регистрация: 24.02.2012
Сообщений: 4

$(document).ready(function(){
	$.ajax({
	  url: "aa/aa.php",
	  dataType: 'json',
	  success:    function(data){
		var items = [];
		$.each(data, function(key, val){
				items.push("<option value="+val[3]+">" + val[0]+' '+val[1] +' ('+val[2]+')</option>');
		});
		var contactData = [];
		$.each(data, function(key, val){
				contactData[val[3]]= val[0]+'#'+val[1]+'#'+val[2];

				$('<p/>', {
				'id': val[3],
				html: contactData[val[3]]
				}).appendTo('#infobox');
				
				
				
		});
		$('.list').append(items.join(''));
		}
	});
});

//Приходит многомерный массив, из которого формируется селект и наполняется див
// При выборе из селект, нужно обратится к  скрытому <p id='''> и взять содержимое для дальнейшей обработки
$(document).ready(function(){
	$( ".list" ).change(function() {
		var cid = $(this).val();
		var cidData = $(cid).html(); //тут проблема
		$("#debugbox").empty().append(cidData);
	});
});


<select class="list"></select>
<div id="infobox"></div>
<div id="debugbox"></div>

Прошу прощения что на Jquery, не в той теме

UPD В теге p записывается больше элементов массива. Иначе можно было бы взять все из селекта. Как альтернативу ищу способ передать data или массивы из $.ajax во вне, но похоже такое нельзя сделать.

Последний раз редактировалось Cryolite, 24.02.2012 в 14:33.
Ответить с цитированием
  #5 (permalink)  
Старый 24.02.2012, 14:53
Новичок на форуме
Отправить личное сообщение для Cryolite Посмотреть профиль Найти все сообщения от Cryolite
 
Регистрация: 24.02.2012
Сообщений: 4

После вызова первой функции селект заполняется
<select class="list">
<option value="num1">Text1</option>
<option value="num2">Text2</option>
</select>

если написать
$("#debugbox").empty().append(cid);

будет нарисован value select'a. (num1 - например)


var cidData = $(cid).html();
- тут Id <div id="infobox"><p id="no1">Text</p></div> должен быть

Но на деле там <div id="infobox"></div> так и остается

------------------

Получилось , действительно в решётке дело оказалось. Сам бы не дошёл. Большое спасибо.

P.S. А почему так писать не стоит, можете пояснить, если это не сложно?

Последний раз редактировалось Cryolite, 24.02.2012 в 14:59. Причина: Я тоже не вчитался
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Невозможно обратиться к только что вставленному элементу DOM Vovan91 jQuery 6 19.01.2012 12:59
Как обратиться к элементу, который был добавлен после полной загрузки DOM? LysoSutriN jQuery 5 02.01.2012 14:59
Перевод на новую строку JS воспринимает как объект DOM Rig Events/DOM/Window 6 26.12.2011 18:08
JS, RDFa, DOM, XML - Help! О_о Djumpen Общие вопросы Javascript 5 18.11.2010 18:37
Почему не работает JS с подгруженными в DOM элементами? V-z-z-HobboT jQuery 6 30.03.2009 13:02