Удаление атрибута в IE - в чем засада? 
		
		
		
		Почему в  IE не работает код нижеприведённый? 
	В FF и Опере работает. Если поставить removeAttribute вместо delete - сработает, но мне хочется понять сам принцип. Библиотека кроссбраузерного events.js у меня на IE 6 некорректно снимает события из-за этого - там тоже удаление в remove через delete. <html> <head> </head> <body> <h1 id="TestStop">Link</h1> 
<script type="text/javascript"> 
	var el = document.getElementById('TestStop')
	el.newF = 1
	alert('1 - ' + el.newF)
	
	delete el.newF
//	el.removeAttribute('newF')
	alert('2 - ' + el.newF)
	
	</script>
</body> </html>  | 
	
		
 Атрибуты элементов и свойства объектов — разные вещи. 
	p.s. что с xpoint? такая полезная ссылка не доступна (((  | 
	
		
 я устанавливаю в коде не атрибут 
		
		
		
		[quote=Octane;32377]Атрибуты элементов и свойства объектов — разные вещи. 
	Но ведь я устанавливаю в коде не атрибут, а именно свойство: el.newF = 1 Атрибут я не устанавливаю! Да, синхронизацией браузера оно создаётся, но почему же IE не дает это установленное свойство удалить через delete ? Как мне снести его? Именно свойство?  | 
	
		
 el.newF = undefined;  | 
	
		
 а в синглтоне Event ? 
		
		
		
		Спасибо. 
	А в библиотечке http://javascript.ru/tutorial/events/crossbrowser - тут в ф-ии remove свойства элемента улаляются именно через delete. 
.......
	  for (var any in elem.events) return
	  delete elem.handle
	  delete elem.events
    } 
......
Это разве корректно? Собственно,у меня именно здесь и начал ругаться IE - что вывело на эту ошибку. Т.е. давайте устаканим - всё же как наиболее кроссбраузерно удалить свойство? Я тестирую сайт свой под IE 6 и потому для меня этот вопрос важен.  | 
	
		
 Хм… пробовал в IE8, там это видимо исправили, не понял сначала вопроса, в IE6 действительно ошибка. 
	Цитата: 
	
 
document.body.x = 1;
document.body.x = undefined;
alert("x" in document.body); // true
Так как в IE упрощены атрибуты и свойства DOM-элементов, то наверное так и придется через removeAttribute делать: 
document.body.x = 1;
document.body.removeAttribute("x");
alert("x" in document.body); // false в IE
хотя там с регистром еще заморочки…  | 
	
		
 Цитата: 
	
  | 
	
		
 всё то же удаление 
		
		
		
		Re: Смотря какие цели удаления. 
	Цель - удалить-освободить "навешенные" на элемент свойства. Максимально возможно без утечек. В приведенной библиотеке events.js из-за этой ошибки в IE6 не выполняются у меня бизнес-логика. В принципе, присваивание свойству undefined - освободит связанные свойством ресурсы, а оставшееся свойство... ну пусть и висит - оно не мешает, это как бы пустая ссылка уже. Да, оно находится в списке свойств, но привязано к элементу, и утечки с ним уже не возможны - время жизни свойства определит сам элемент. Для events.js этот путь мне кажется достаточным. Для объектов или массивов delete в IE6 работает нормально. 
document.body.x = 1;
document.body.removeAttribute("x");
alert("x" in document.body); // false в IE
но этот же код true в FF !  | 
	
		
 В библиотеке проверка существования св-ва делается через  
	
document.body.x = undefined;
if(!document.body.x) alert('Свойства нет');
потому просто присвоение undefined кажется достаточным, хотя если есть путь, который кроссбраузерно и из списка свойств удалит, то, оно, конечно, кошерно было бы... :)  | 
| Часовой пояс GMT +3, время: 07:35. |