Как применять стили для добавленного элемента? [Дубликат]

Методы класса, как следует из названия, используются для внесения изменений в классы, а не в объекты. Чтобы внести изменения в классы, они будут изменять атрибуты класса (а не атрибуты объекта), поскольку именно так вы обновляете классы. Это причина, по которой методы класса принимают класс (условно обозначаемый «cls») как первый аргумент.

class A(object):
    m=54

    @classmethod
    def class_method(cls):
        print "m is %d" % cls.m

Статические методы, с другой стороны, используются для выполнения функций, которые не связаны с класс, т.е. они не будут читать или писать переменные класса. Следовательно, статические методы не принимают классы в качестве аргументов. Они используются таким образом, чтобы классы могли выполнять функциональные возможности, которые напрямую не связаны с целью класса.

class X(object):
    m=54 #will not be referenced

    @staticmethod
    def static_method():
        print "Referencing/calling a variable or function outside this class. E.g. Some global variable/function."
5
задан DLeonardi 6 March 2013 в 12:43
поделиться

2 ответа

немного поздно, но причина в том, что вы проанализировали их с помощью опции text/xml, что означает, что результатом являются узлы XML, которые не применяют к ним CSS. Когда вы щелкните правой кнопкой мыши и перейдете «редактировать как HTML», браузер переинтерпретирует их как HTML, а изменение в элементе вызовет перерисовку, повторно применяя CSS.

Я разбирал мой, используя относительно взломанный -ish, но определенно работающий метод создания временного элемента и манипулирования свойством innerHTML, в результате чего браузер выполняет синтаксический анализ:

var temp = document.createElement("div")
//assuming you have some HTML partial called 'fragment'
temp.innerHTML = fragment
return temp.firstChild

, который вы отметили в своем jsfiddle. В основном это сводится к выводу DOMParser, являющегося экземпляром XMLDocument, когда вы используете опцию text/xml.

1
ответ дан kieran 25 August 2018 в 21:09
поделиться

Вы можете изменить тип mime на text/html и сделать следующее:

var parser = new DOMParser()
var doc = parser.parseFromString(markup, 'text/html')
return doc.body.firstChild

Я не тестировал в каждом браузере, но он работает на Chrome и Firefox. Я не вижу причин, чтобы он не работал в другом месте.

3
ответ дан ngryman 25 August 2018 в 21:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: