Пожалуйста, взгляните на мой маленький скрипт, который проверяет, определен ли стиль для элемента.Синтаксис JS на свойство стиля
HTML:
<div id="la" style="width: 100px;height: 100px;background: #eee;">
</div>
И JS:
var _str = document.getElementById('la');
/*A object literal that contains some pretty random set of css definitions */
var str_elem = {
'padding' : '40px',
'width' : '100px'
}
/*we are using the for loop to check if the properties defined in our obj literal are actually present in the element style definition.*/
for(var name in str_elem){
if (_str.style[name] == ' ') {
console.log('not present' + ' ' + str_elem[name]);
}
}
Мой вопрос о том, если состояние и синтаксис внутри него. Обычно, когда мы хотим получить стиль элементов мы используем следующий синтаксис:
elementname.style.propertyname
Но почему при проверке, если элемент имеет свойство, мы, используя следующий синтаксис:
elementname.style['padding']
??
И почему этот синтаксис выдает ошибку:
elementname.style.propertyname
Мой сценарий работает отлично, на мой вопрос о синтаксисе JS.
EDIT :: конденсироваться мое затруднение, позвольте мне перефразировать мой вопрос: если в условии, если что у меня есть я использую следующий синтаксис:
_str.style.[name]
(обратите внимание на точку после стиля), вместо того, что у меня в настоящее время есть _str.style[name]
, Почему возникает ошибка. ?
Где вы это делаете -> ElementName .style ['padding'] в вашем коде. –
@SandeepNayak, проверьте мой комментарий в скрипке относительно условия if. http://jsfiddle.net/okkz6hfk/. –
Чтобы узнать больше об этом, ознакомьтесь с документацией: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors –