javascript [object Object] 到字符串

javascript [object Object] to string

本文关键字:字符串 Object object javascript      更新时间:2023-09-26

我将从一点背景开始。

所以我要做的是从元素中获取"style"属性,最终的计划是将其输出到文本框(样式是动态的)。有了这个,我正在创建一些 css 前缀,因为我只抓取计算样式。

有了这个,我有一个带有一堆 css 属性的变量,如下所示:

compcss = {
                'font-size': fsize,
                'padding': tpadd,
                '-webkit-border-radius': brad,
                '-moz-border-radius': brad,
                '-o-border-radius': brad,
                '-ms-border-radius': brad,
                'border-radius': brad,
                'background': bground,
                'background-m': bgmoz,
                'background-o': bgop,
                'background-i': bgie,
                'color': 'white',
                'text-shadow': '0 -1px 0 rgba(0, 0, 0, 0.25)',
                'text-decoration': 'none',
                'border': '1px solid rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25)',
            };

通常,fsize,tpadd,brad和bground填充

document.defaultView.getComputedStyle(cssStr[0], "")[style]

但是对于以下 jsbin,我输入了静态数字。

这在记录或放入文本框时返回为[object Object],这是意料之中的。但是,我希望以以下形式将此对象输出为字符串:

font-size: Xpx;
padding: Ypx;
-webkit-border-radius: Zpx;

等等,我已经尝试过 JSON.stringify(compcss),但它返回为:

"font-fize":"Xpx","padding":"Ypx","-webkit-border-radius":"Zpx"

一路向下。

让它以我想要的方式输出的最佳方法是什么?如果有什么需要澄清的,请告诉我。有没有更好的方法呢?

例如,这里有一个JSBIN:http://jsbin.com/opiwuy/2/edit

Vanilla Javascript和JQuery都很好。

谢谢!

  var value = '';
  $.each(compcss, function(key, val) {
    value += key + ' : ' + val + ';' +''n';
  });
  $('#css').val(value);

演示

你也可以做

$('#css').val(function() {
    var value = '';
    $.each(compcss, function(key, val) {
      value += key + ' : ' + val + ';' + ''n';
    });
    return value;
});

演示

这样的东西可能适合您的需求:

function cssStringify(myObject) {
    var result = "";
    var stringObjs = JSON.stringify(myObject).split(",");
    $.each(stringObjs, function(val) {
        var pair = val.split(":");
        result = result + pair[0] + ":" + pair[1] + ";'n";
    });
    return result;
}
只是用

.replace扔掉我的版本

var xx = JSON.stringify(compcss); 
$('#csjson').val(
    xx.replace(/":"|":/g, ":")
      .replace(/,"/g, "'n")
      .replace(/"/g, ""));

演示:http://jsbin.com/opiwuy/4