输出中的逗号

时间:2015-04-05 21:04:02

标签: javascript jquery html

我写了一个函数,考虑了div的高度和宽度,现在我找不到我编写代码的地方,用逗号输出值 例如:#div_0 {height:13.3%; 宽度:28.5%; }

(function ($) {
    $.fn.percent = function (el, arg2) {
        var pol = $(this).parent()

        if (typeof (el) != 'object') {
            if (typeof (el) == 'number' && arg2 == 'w' || typeof (el) == 'number' && arg2 == 'width') return el * 100 / parseInt(pol.css('width'))+ '%;' ;
            else if (typeof (el) == 'number' && arg2 == 'h' || typeof (el) == 'number' && arg2 == 'height') return el * 100 / parseInt(pol.css('height'))+ '%;';
            else return false;
        }
        var set = [];
        for (var i in el) {
            var element = parseInt($(this).css(i));
            if (el[i] == 'w' || el[i] == 'width') set[set.length] = '\n' + i + ': ' + element * 100 / parseInt(pol.css('width'))+ '%;' ;
            else if (el[i] == 'h' || el[i] == 'height') set[set.length] = '\n' + i + ': ' + element * 100 / parseInt(pol.css('height'))+ '%;';
        }
        return set; 
    }
})(jQuery);

var return_ = '';
var sharp = '#';

function chet_div() {
    for (var i = 0; i < $('#container div').length; i++) {
        if ($('#container div').eq(i).attr('id').search(/div/i) != -1) {
            return_ += sharp + $('#container div').eq(i).attr('id') + '{\n ' + $('#container div').eq(i).percent({ height: 'h', width: 'w' }) + '\n}\n';
        }
        document.getElementById('hidden_sizes').value = return_;
    }
    return return_;
}

感谢

2 个答案:

答案 0 :(得分:0)

你的插件构造一个CSS规则数组并返回这个数组:

var set = [];
// ...
return set;

稍后您将此数组与一些字符串连接起来:

'{\n ' + $('#container div').eq(i).percent({
    height: 'h',
    width: 'w'
}) + '\n}\n';

在这种情况下,数组也将使用toString方法转换为String类型。现在,toString for Array calles join()内部使用,作为默认分隔符。这就是您看到&#39;,&#39;。

的原因

要克服这个问题,不要依赖于本例中发生的隐式类型转换,而是使用正确的分隔符自己创建一个字符串:

'{\n ' + $('#container div').eq(i).percent({
    height: 'h',
    width: 'w'
}).join('') + '\n}\n';

答案 1 :(得分:0)

您的函数percent()返回一个数组,但在字符串中使用,因此它使用toString()方法将值与昏迷连接

.percent({ height: 'h', width: 'w' })

我建议将其用作以下内容

.percent({ height: 'h', width: 'w' }).join("")