如何使用jQuery基于查询字符串更改CSS属性值

时间:2012-01-01 19:55:42

标签: jquery css

我是jQuery&的新手我试图自己解决这个问题而没有任何运气。

我需要使用jQuery基于QueryString更改CSS中的Value。我尝试了几个不起作用的脚本。

网址示例:http:www.xyz.com/Page.aspx?pageID=101&Language=arabic

根据网址中指定的语言,我必须在显示页面之前更改类float:right.Image4x4中的verticleBar的CSS值。

 .Image4x4
    {
        width:670px;
        float:left; /* for arabic keep right */
        height:550px;
        background-color:Orange; 
    }
    .verticleBar
    {
        width:220px;
        float:left; /* for arabic keep right */
        height:550px;
        background-color:Red;
    }

我尝试了很少的脚本,但它没有像计划那样工作。

我将不胜感激。

2 个答案:

答案 0 :(得分:3)

var queryValues = {};

$.each(window.location.href.split('?').pop().split('&'), function (i, v)
{
    var v = v.split('=');
    if(v.length > 1) // prevent v[1] from erroring if no querystring present
      queryValues[ v[0].toLowerCase() ] = v[1].toLowerCase();
});

if ( queryValues.language == 'arabic' )
{
    $('.Image4x4, .verticleBar').css('float', 'right');
}

如果你不确定总会有查询字符串,你应该添加代码来检查它。

答案 1 :(得分:1)

我提出了一个独立于JavaScript的解决方案......

假设您需要这样做,因为阿拉伯语是从右向左(RTL)读取的,请使用ASP创建RTL语言列表。只要URL中设置的语言在此列表中,请为<body>标记指定“rtl”类吗?

如果是这样,您可以执行以下操作:

.rtl .Image4x4, .rtl .verticleBar
{
    float:left; /* for arabic keep right */
}

这样您就可以处理任何RTL语言。