从查询字符串创建CSS规则

时间:2014-08-03 21:28:34

标签: javascript jquery css query-string

获取查询字符串

var queryString = window.location.search;

删除?从查询字符串的开头

queryString = queryString.substring(1);

查询字符串处理器

var parseQueryString = function( queryString ) {
    var params = {}, queries, temp, i, l;
    // Split into key/value pairs
    queries = queryString.split("&");
    // Convert the array of strings into an object
    for ( i = 0, l = queries.length; i < l; i++ ) {
        temp = queries[i].split('=');
        params[temp[0]] = temp[1];
    }
    return params;
};

//查询字符串对象

var pageParams = parseQueryString(queryString);

// CSS变量

var target = pageParams.target;
var prop = pageParams.prop;
var value = pageParams.value;

//无法开始工作 - &gt;

jQuery(target).css({
    prop : value,
});

我希望能够提供像这样的查询“?target = body&amp; prop = display&amp; value = none”并使整个身体消失或按类别定位某些元素。

2 个答案:

答案 0 :(得分:2)

您将无法使用prop作为传递给.css()的对象的键变量。在这种情况下,它将转换为文字字符串'prop'。相反,你必须做类似的事情:

jQuery(target).css(prop,value);

注意:请注意该哈希中的尾随逗号(在value之后)。有些浏览器会在此时出错。

答案 1 :(得分:0)

为了创建一个可以传递给jQuery的css对象,我建议像这样:

// Create css obj
var cssObj = {};
cssObj[prop] = value;

在此之后,代码对我来说很好。请参阅此处的完整解决方案:

http://jsfiddle.net/q97DH/4/

我建议使用正则表达式删除问号 - 请参阅下面的评论。