Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果URL变量等于ID而不是addclass_Javascript_Jquery - Fatal编程技术网

Javascript 如果URL变量等于ID而不是addclass

Javascript 如果URL变量等于ID而不是addclass,javascript,jquery,Javascript,Jquery,当然,有一种更聪明的方法来安排下面的Javascript。我有一个GET变量,比如“工程”或“项目交付”,但将来可能会有所不同 然后,我在主体中有一些链接,它们的id应该与GET变量相对应 if(window.location.href.indexOf("division=engineering") > -1) { jQuery( "a#engineering" ).addClass( "active" ); } if

当然,有一种更聪明的方法来安排下面的Javascript。我有一个GET变量,比如“工程”或“项目交付”,但将来可能会有所不同

然后,我在主体中有一些链接,它们的id应该与GET变量相对应

        if(window.location.href.indexOf("division=engineering") > -1) {
           jQuery( "a#engineering" ).addClass( "active" );
        }

        if(window.location.href.indexOf("division=project_delivery") > -1) {
           jQuery( "a#project_delivery" ).addClass( "active" );
        }

        if(window.location.href.indexOf("division=new_zealand") > -1) {
           jQuery( "a#new_zealand" ).addClass( "active" );
        }

        if(window.location.href.indexOf("division=infrastructure") > -1) {
           jQuery( "a#infrastructure" ).addClass( "active" );
        }

有人能帮我找到一种更有效的方法来构造这个jQuery吗?

你可以通过将get数据放入var来省去重复,试试这样的方法

var div=<your get> // IE. engineering and etc
if(window.location.href.indexOf("division="+div) > -1) 
{
           jQuery( "a#"+div ).addClass( "active" );                
}
var div=//即工程等
if(window.location.href.indexOf(“division=“+div”)>-1)
{
jQuery(“a#“+div).addClass(“active”);
}

注意:我还没有测试过,所以可能会有一些小错误,代码仅用于构思。

您可以通过将get数据放入var来省略重复,尝试类似的方法

var div=<your get> // IE. engineering and etc
if(window.location.href.indexOf("division="+div) > -1) 
{
           jQuery( "a#"+div ).addClass( "active" );                
}
var div=//即工程等
if(window.location.href.indexOf(“division=“+div”)>-1)
{
jQuery(“a#“+div).addClass(“active”);
}
注意:我还没有测试过,所以可能会有一些小错误,代码仅用于Idea目的。

试试这个:

(function (){
   var temp = location.pathname.split("division=")[1];
   jquery('a#' + temp).addClass('active');
}());
试试这个:

(function (){
   var temp = location.pathname.split("division=")[1];
   jquery('a#' + temp).addClass('active');
}());

您可以尝试以下解决方案:

var key = window.location.href.match(/division=(?:[a-zA-Z0-9_]+)/g)[0].replace(/^division=/, ''); 
if(key) jQuery( "a#" + key ).addClass( "active" );

您可以尝试以下解决方案:

var key = window.location.href.match(/division=(?:[a-zA-Z0-9_]+)/g)[0].replace(/^division=/, ''); 
if(key) jQuery( "a#" + key ).addClass( "active" );

我想你可以这样试试:

function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}
那就打电话吧

jquery('a#' + getParameterByName('division')).addClass('active');

我想你可以这样试试:

function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}
那就打电话吧

jquery('a#' + getParameterByName('division')).addClass('active');

那么jQuery(“a#”+variablevalue)呢;那么jQuery(“a#”+variablevalue)呢;像这样的URL会发生什么<代码>http://server/doc.html?division=something¶m2=value2?这只是一个想法,并不是一个彻底的实现,当然还有其他方法可以从位置获取get参数的值。像<代码>http://server/doc.html?division=something¶m2=value2?这只是一个想法,不是彻底的实现,当然还有其他方法可以从位置获取get参数的值。