Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   onclick не сохраняется в outerHtml (https://javascript.ru/forum/misc/56205-onclick-ne-sokhranyaetsya-v-outerhtml.html)

petrovich 04.06.2015 13:50

onclick не сохраняется в outerHtml
 
var f = function (){};         
var ff = function (){};  

var блок;
блок = document.createElement('div');
блок.id = 'id';
блок.dataset.y = '1';
блок.onclick = f;
document.body.appendChild(блок);
     alert(блок.outerHTML);  //нет onclick

var v=document.getElementById('блок2');
     v.onclick = ff;             //не заменяется содержимое атрибута onclick
     alert(v.outerHTML);   //есть onclick
}

<div id='блок2' onclick = 'f();' data-y='1''  ></div>


в блоке созданном скриптом нет атрибута onclik в outerHtml
а в блоке2 описанном в теле документа он есть
и не заменяется атрибут onclick описанный в теле документа на новый из скрипта

поясните логику пожалуйста

Decode 04.06.2015 16:06

petrovich, это юмор такой?

Decode 04.06.2015 17:10

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <div id="first-block" onclick="f();" data-y="1">1</div>

    <script>
        var f = function() {
            alert('bla-bla');
        };
    
        var secondBlock = document.createElement('div');
        secondBlock.id = 'second-block';
        secondBlock.innerHTML = '2';
        secondBlock.setAttribute('onclick', 'f()');
        secondBlock.dataset.y = '1';
        document.body.appendChild(secondBlock);
    </script>
</body>
</html>

petrovich 04.06.2015 17:22

setAttribute - хорошо, но
надо разобраться с атрибутом элемента .onclik
чо не так то ?!

это наверное ржачно, да
туплю, жара...

рони 04.06.2015 17:53

petrovich,
свойство не атрибут отображатся необязано, главное работает.

petrovich 04.06.2015 18:45

рони, понимаю шо ты хочеш сказать шо onclick созданный как свойство не засчитывается в innerHTML
соответственно для едионообразия и логичности следует все остальные атрибуты добавлять только через setAttribute

обыскал сколько смог перед тем как спросить здесь - нигде в учебниках не нашел про это

рони 04.06.2015 18:57

petrovich,
Цитата:

В отличие от свойств, атрибуты:
●Всегда являются строками.
●Их имя нечувствительно к регистру (ведь это HTML)
●Видны в innerHTML (за исключением старых IE)
https://learn.javascript.ru/attribut...tom-properties


Часовой пояс GMT +3, время: 20:55.