如何在使用jQuery添加到DOM之前为HTML元素添加新属性

时间:2016-06-02 09:59:25

标签: javascript jquery html ajax

实际上可能会发生这样的标题,它不完全正确,很抱歉。 我的问题如下。我有一个变量(包含html的内容),从ajax响应得到的内容,我想添加一些新元素。之后插入dom。

例如,在这里:

ajaxString  = "<b>asd</b>";
replaced    = $("b", $(ajaxString) ).css('background','#ff0000');
$("body").html(replaced);

但它不起作用。我希望,有人有个主意!

感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

您可以先在jQuery对象中创建元素,然后在追加它之前修改其属性。试试这个:

$("<b>asd</b>").css('background', '#ff0000').appendTo('body');

答案 1 :(得分:0)

这可以使用虚拟元素完成:

    /**
     * {@inheritdoc}
     */
    public function reset()
    {
        if (!empty($this->scopedServices)) {
            throw new LogicException('Resetting the container is not allowed when a scope is active.');
        }

        $this->services = array();
    }

根据您的评论,您可以使用它来获取虚拟div的所有html:

var ajaxString = "<b>asd</b>",
  virtualDiv = $('<div>', {html: ajaxString});

$("b", $(virtualDiv)).css('background', '#ff0000');
$("body").html($("b", $(virtualDiv))[0]);

答案 2 :(得分:0)

这是你试图实现的工作的小提琴

你应该使用过滤器

var newhtml = $('<b>asd</b><p>asd</p>');

newhtml.filter('b').each(function(){

$(this).css('font-size','50px')
$(this).css('color','blue')

});

newhtml.filter('p').each(function(){

$(this).css('font-size','20px')
$(this).css('color','red')

});

$('body').html(newhtml);

https://jsfiddle.net/c7a6spaj/

干杯