如何获取JSON格式的元素样式?

时间:2019-02-04 05:07:10

标签: jquery css json css3

我正在寻找一个函数,该函数可为我提供JSON上给定元素上应用的所有样式的jquery

我尝试过this,但似乎不适用于Firefox 寻找一个将元素作为输入并返回JSON

的函数

必需的输出是

{
'sidebar' : {
    'background-color' : '#000000',
    'width' : 'auto',

},
'content-area' : {
 'color' : '#000000',
 'width' : '50%',
}
}

2 个答案:

答案 0 :(得分:1)

在第一行中,我们使用document.querySelectorAll("*")获取DOM中存在的所有元素,并创建一个将存储所有样式的对象。我们使用forEach循环迭代所有元素,仅保留包含某种style的元素。我们将当前正在循环中的元素的标签名称存储在循环中,并在上面刚刚创建的原始对象中创建一个带有元素名称变量的对象。现在,借助Object.keys,我们获得了所有键(以样式显示的属性),然后使用另一个forEach循环对该数组进行迭代。我们获得了该元素样式中的所有属性,甚至包括未设置的元素,在if语句中,我们仅获取具有值且非数字的键,因此我们仅获取属性名称(color,{{1 }}等)。在具有元素标签名称的对象内部,我们添加过滤后的样式的所有键值。最后,我们打印对象。

font-size
var a=document.querySelectorAll("*")
var obj={};
a.forEach((e)=>{
if($(e).attr('style')!=null)
{
var k=$(e).prop('tagName')
obj[k]={};
Object.keys(e.style).forEach((t)=>{if(e.style[t]!="" && isNaN(t)){
obj[k][t]=e.style[t];
}})}})
console.log(obj)

答案 1 :(得分:0)

尝试使用jquery-json插件

例如:

public function addimage()
{
$last= $this->addproductm();
$this->load->database();

$data = array(
"pid" => $lastid,
"images" => $this->IMAGE

);
$this->db->insert('image', $data);
}
}

示例:http://jsfiddle.net/mattball/aT77q/