2013-04-29 3 views
0

Это моя функция набор CSS атрибутов, например, как JQueryУстановить атрибут CSS в JavaScript

that.getNode = function() { 
    return element; // element is HTML node 
};  


that.css = function(obj) { 
    var node = that.getNode(), 
     attr; 
    if (node && node.style) { 
     for (attr in obj) { 
      if (obj.hasOwnProperty(attr) && node.style.hasOwnProperty(attr)) { 
       node.style[attr] = obj[attr]; 
      } 
     } 
    } 
    return that; 
}; 

Тогда я называю, он работает на Chrome, как правило, но не может работать на IE9 или светлячок

that.css({ 
    border: "1px solid black" 
}); 
+0

есть подобные вопросы на SO, http://stackoverflow.com/questions/524696/how-to-create-a-style-tag-with-javascript http://stackoverflow.com/questions/7527447/css-in-javascript – shweta

ответ

0

Сделайте Cross-browser Решение вручную - это много работы, я рекомендую использовать некоторую платформу JavaScript, такую ​​как JQuery, она сделает для вас тяжелую работу.

Если вы выбрали JQuery у вас есть функция с именем .CSS и вы могли бы сделать эту задачу в 1 строке, например:

У вас есть HTML-элемент:

<div id="someID"> Content </div> 

правильно? поэтому вы хотите добавить некоторые CSS-классы к этому DIV, вам нужно только сказать JQuery, какой узел в HTML DOM хотите выбрать, и с помощью функции .CSS вы можете установить некоторые атрибуты CSS (и другие вещи):

$("#someID").css("SOME-ATTRIbute","SOME-VALUE"); 

(#someID это идентификатор элемента, .CSS функция)

легко ль ?, Использование JQuery или любые другие Javascript рамочные, которые помогут вам сделать приложение кросс-браузерную.

PS: извините за мой английский

2

Кажется, что следующие возвращает false в некоторых браузерах:

node.style.hasOwnProperty(attr) 

В этих случаях свойства наследуются от prototype, а не принадлежащих К Object (node.style).

Если вы хотите проверить, что свойство существует, то ли в собственности или по наследству, вы можете попробовать in operator:

attr in node.style 

В контексте:

that.css = function(obj) { 
    var node = that.getNode(), 
     attr; 
    if (node && node.style) { 
     for (attr in obj) { 
      if (obj.hasOwnProperty(attr) && attr in node.style) { 
       node.style[attr] = obj[attr]; 
      } 
     } 
    } 
    return that; 
}; 
Смежные вопросы