我正在寻找一个函数,该函数可为我提供JSON
上给定元素上应用的所有样式的jquery
我尝试过this,但似乎不适用于Firefox
寻找一个将元素作为输入并返回JSON
必需的输出是
{
'sidebar' : {
'background-color' : '#000000',
'width' : 'auto',
},
'content-area' : {
'color' : '#000000',
'width' : '50%',
}
}
答案 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);
}
}