实际上可能会发生这样的标题,它不完全正确,很抱歉。 我的问题如下。我有一个变量(包含html的内容),从ajax响应得到的内容,我想添加一些新元素。之后插入dom。
例如,在这里:
ajaxString = "<b>asd</b>";
replaced = $("b", $(ajaxString) ).css('background','#ff0000');
$("body").html(replaced);
但它不起作用。我希望,有人有个主意!
感谢您的帮助!
答案 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/
干杯