Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.11.2015, 20:22
Аспирант
Отправить личное сообщение для Floyd Посмотреть профиль Найти все сообщения от Floyd
 
Регистрация: 20.05.2014
Сообщений: 40

как сохранить DOM объект, подлежащий изменению?
всем привет!
уверен, что подскажете правильное решение.
есть табличка. тыкнул на строку, нажал изменить, аякс прислал окошко (слоем поверх таблички, append к body). в окошке изменил поля, сабмит, аяксом послал в базу, получил в ответ (если без ошибок) новую табличку.

как правильно зацепить объект таблички, чтобы поместить в него обновление?
ведь при аппенде меняется DOM (если не путаю), просто this таблички держать в переменной не получится. сохранять в переменную id таблицы и потом $("#"+s_idTable).html(...) ?
хочется элегантного решения без этого jquery-поиска.
спасибо!

Последний раз редактировалось Floyd, 12.11.2015 в 01:44. Причина: поправил вопрос
Ответить с цитированием
  #2 (permalink)  
Старый 11.11.2015, 21:32
Аспирант
Посмотреть профиль Найти все сообщения от pnpquest
 
Регистрация: 09.11.2015
Сообщений: 94

Вообще, ничего "неэлегантного" в Вашем способе я не вижу. Но можете воспользоваться replaceChild
<html>
<head>

<meta charset="utf-8">

<style>


</style>

</head>
<body>

<div id="outer">
<div id="inner">foo</div>
</div>


<script>


var div = document.createElement("div")
div.innerHTML = "bar"
div.id = "inner"
outer.replaceChild(div, inner)




</script>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 12.11.2015, 01:42
Аспирант
Отправить личное сообщение для Floyd Посмотреть профиль Найти все сообщения от Floyd
 
Регистрация: 20.05.2014
Сообщений: 40

Сообщение от pnpquest
можете воспользоваться replaceChild
как заменить - не проблема. вопрос не в этом.
Ответить с цитированием
  #4 (permalink)  
Старый 12.11.2015, 08:42
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,135

Сообщение от Floyd
просто this таблички держать в переменной не получится. сохранять в переменную id таблицы
Если умеешь сохранять ИД - так же сохранишь и ссылку на таблицу... Разницы нет никакой.
Ответить с цитированием
  #5 (permalink)  
Старый 12.11.2015, 15:29
Аспирант
Отправить личное сообщение для Floyd Посмотреть профиль Найти все сообщения от Floyd
 
Регистрация: 20.05.2014
Сообщений: 40

окей, возможно, я слишком упростил вопрос.
на самом деле у меня не id, а классы. окошек может вылезти несколько, и таблиц может быть на странице несколько с одинаковым классом. но редактирую я конкретную. и при редакции хотелось бы сохранить ссылку именно на эту таблицу, чтобы потом ее не искать через $(".tableClass").html(...), а сразу o_savedTableObject.html(...).
вот как сохранить этот o_savedTableObject неизменным и равным $(this) при клике на строке таблицы?
Ответить с цитированием
  #6 (permalink)  
Старый 12.11.2015, 15:33
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,135

Floyd, ты тестовые примеры не делаешь принципиально?
Ответить с цитированием
  #7 (permalink)  
Старый 12.11.2015, 15:39
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,135

Сообщение от Floyd
чтобы потом ее не искать через $(".tableClass").html(...), а сразу o_savedTableObject.html(...).
Вот кагбэ иллюстрация...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$('li').click(function(){
		var obj=this;
		setTimeout(function(){
			alert(obj.innerHTML);
		},1000);
	});
})
</script>
</head>
<body>
<ul>
	<li>0</li>
	<li>1</li>
	<li>2</li>
	<li>3</li>
</ul>
</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 12.11.2015, 18:30
Аспирант
Отправить личное сообщение для Floyd Посмотреть профиль Найти все сообщения от Floyd
 
Регистрация: 20.05.2014
Сообщений: 40

да вот на пальцах пытаюсь объяснить...
ksa, вот пользуясь твоим примером. сейчас в obj находится ссылка на li.
вот представь, мы сейчас делаем $(document.body).append("<div>новое окно</div>").
а после этого alert(obj.innerHTML)
будет ли после аппенда в obj тот самый li?
Ответить с цитированием
  #9 (permalink)  
Старый 12.11.2015, 18:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,078

Floyd,
что мешает при отправке запроса указать в какую таблицу вернуть ответ
Сообщение от Floyd
просто this таблички держать в переменной не получится.
получится
обычно так делают ...
var self = this;
$.ajax({
  url: 'ajax/test.html',
  success: function(data){
    self.append(data)   }
});
Ответить с цитированием
  #10 (permalink)  
Старый 12.11.2015, 22:13
Аспирант
Посмотреть профиль Найти все сообщения от pnpquest
 
Регистрация: 09.11.2015
Сообщений: 94

Сообщение от рони
обычно так делают
ИЧСХ, обычно, безо всякой на то нужды

element .onclick = function(){
$.ajax({
  url: 'ajax/test.html',
  success: function(data){
    element.append(data)   }
});
}

то же самое
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить быстро перезагружаемую страницу? avatator Общие вопросы Javascript 8 16.05.2013 01:39
Как понять, что элемент точно удалён из Dom Slavchic Общие вопросы Javascript 6 15.05.2013 01:49
как добавить свойство объекта в объект в объекте ? %) mitiya Общие вопросы Javascript 1 07.10.2012 14:46
Как сохранить объет в память? vitorrio Общие вопросы Javascript 5 07.09.2012 17:47
Как в браузерах реализуются функции DOM (например createElement) iamme Общие вопросы Javascript 7 02.09.2011 20:26