powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / elem.setAttribute()
12 сообщений из 12, страница 1 из 1
elem.setAttribute()
    #39295084
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста, автор книги пишет, что изменение атрибута обновляет свойство но изменение свойства не обновляет атрибут. Но в данном случае если сначала поменять свойство а потом атрибут, то свойство не обновится. Если не сложно объясните это ошибка у автора или просто я не до конца понял этот момент. Спасибо!
Код: javascript
1.
2.
3.
4.
5.
6.
7.
"use strict"
		
		input.value = "Изменили свойство";
		alert(input.value);
		
		input.setAttribute("value", "Теперь смена атрибута не обновит свойство");
		alert(input.value);
...
Рейтинг: 0 / 0
elem.setAttribute()
    #39295091
Фотография бухалтер фантоцци
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameron,

а так понятно?

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<meta http-equiv = "Content-Type" content = "text/html; charset=utf-8">
<script type="text/javascript">
  "use strict"
  function myFunc() {
    var obj = document.getElementById('input1');

    obj.myAttribute = 'Изменили свойство';
    obj.value = 'Изменили свойство';
    alert(obj.getAttribute('myAttribute') + '\n' + obj.myAttribute + '\n' + obj.value);

    obj.setAttribute("myAttribute", "Теперь смена атрибута не обновит свойство");
    obj.setAttribute("value", "Теперь смена атрибута обновит свойство");
    alert(obj.getAttribute('myAttribute') + '\n' + obj.myAttribute + '\n' + obj.value);
  }
</script>
</head>
<body>
  <input type="button" id="input1" myAttribute="111" value="click me" onclick="myFunc()" />
</body>
</html>
...
Рейтинг: 0 / 0
elem.setAttribute()
    #39295160
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
бухалтер фантоцциа так понятно?

Я наверное тупой...(((
Единственное что я понял так это то, что закономерности определенной нет. Зависит от того, какой input
Например у <input type="button"> даже изменение свойства меняет атрибут.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<!DOCTYPE HTML>
<html>
<head>
	<title>Задача1</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

</head>
<body>
  <input type="button" id="input" value="click me"/>
  
  <script type="text/javascript">
  "use strict"
		
		input.value = "Изменили свойство";
		alert("Свойство  value = " + input.value + "\nатрибут  value = " + input.getAttribute("value"));
		
		input.setAttribute("value", "Теперь смена атрибута обновит свойство");
		alert("Свойство  value = " + input.value + "\nатрибут  value = " + input.getAttribute("value"));
 
</script>
</body>
</html>



А у <input type="text"> изменение свойства не меняет атрибут, но если свойство было изменено первым то последующее изменение атрибута не поменяет свойство
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<!DOCTYPE HTML>
<html>
<head>
	<title>Задача1</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

</head>
<body>
  <input type="text" id="input" value="click me"/>
  
  <script type="text/javascript">
  "use strict"
		
		input.value = "Изменили свойство";
		alert("Свойство  value = " + input.value + "\nатрибут  value = " + input.getAttribute("value"));
		
		input.setAttribute("value", "Теперь смена атрибута не обновит свойство");
		alert("Свойство  value = " + input.value + "\nатрибут  value = " + input.getAttribute("value"));
 
</script>
</body>
</html>
...
Рейтинг: 0 / 0
elem.setAttribute()
    #39295163
Фотография FishHook
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameron,

вот что нам говорит документация от мозиллы

авторИспользование setAttribute() для изменения определенных атрибутов особенно значимо в XUL, так как работает непоследовательно, а атрибут определяет значение по умолчанию. Для того, чтобы получить или изменить текущие значения, вы должны использовать свойства. Например, elt.value вместо elt.setAttribure('value', val).
...
Рейтинг: 0 / 0
elem.setAttribute()
    #39295175
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FishHook,

Да, но в случае с input type="text" изменение свойства не поменяет атрибут....вот я и не могу разобраться с этим ибо автор четко пишет в статье что ЗАКОНОМЕРНО что изменение атрибута меняет свойство но не наоборот. Но я привел примеры когда это не работает....вот и запутался. Получается что это не закономерно
...
Рейтинг: 0 / 0
elem.setAttribute()
    #39295177
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FishHook,

https://learn.javascript.ru/attributes-and-custom-properties

Это довольно популярный электронный учебник.
...
Рейтинг: 0 / 0
elem.setAttribute()
    #39295179
Фотография FishHook
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameron,

все изменяется, забудьте про отладку через алерты, так делают только совсем глупые люди. В любом браузере есть средства для отладки, обычно доступные по клавише F12. Попробуйте вывести тоже самое в консоль
Код: javascript
1.
console.log("Bla-bla")
...
Рейтинг: 0 / 0
elem.setAttribute()
    #39295196
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FishHookвсе изменяется, забудьте про отладку через алерты

При чем тут алерты, согласен что может это не совсем профессионально но сути дела не меняет. Только что попробовал через console.log() получается ровно то же что и через алерты.

1)У <input type="button"> даже изменение свойства меняет атрибут.
2)У <input type="text"> изменение свойства не меняет атрибут, но если свойство было изменено первым то последующее изменение атрибута не поменяет свойство
...
Рейтинг: 0 / 0
elem.setAttribute()
    #39295200
Фотография бухалтер фантоцци
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameron,

Почти на все вопросы может ответить официальная спецификация.

Надеюсь Вы различаете произвольные (пользовательские) и зарезервированные свойства и атрибуты.

Ещё подсказка - через innerHTML вы получите набор атрибутов, а не свойств,
но конкретно надо проверять самому, потому что зависит от типа объекта и прочих деталей.
...
Рейтинг: 0 / 0
elem.setAttribute()
    #39295203
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
бухалтер фантоцциНадеюсь Вы различаете произвольные (пользовательские) и зарезервированные свойства и атрибуты

Конечно различаю...и понял что вы имели в виду в первом ответе. Но дело не в этом. и даже не в innerHTML
вопрос в том, что я сам запутался и уже чисто принципиально хочется знать истину.
Еще раз повторю что у автора это выглядит как закономерность....но де факто тут море исключений.
...
Рейтинг: 0 / 0
elem.setAttribute()
    #39295204
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
бухалтер фантоцциПочти на все вопросы может ответить официальная спецификация.

К сожалению не умею ей пользоваться...она на английском и буду там неделю искать это.
...
Рейтинг: 0 / 0
elem.setAttribute()
    #39295207
Фотография бухалтер фантоцци
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameron,

Книжки нужны для Hello World, чтобы понять азы. Там много неточностей (особенно при переводе).
Нужны справочники и собственные тесты.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / elem.setAttribute()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]