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

时间:2016-05-26 10:17:51

标签: javascript jquery

肯定有一种更聪明的方法来安排以下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吗?

4 个答案:

答案 0 :(得分:2)

您可以尝试此解决方案:

'$("#select1").change(function() {
      if ($(this).data('options') == undefined) {
           $(this).data('options', $('#select2 option').clone());
       }
       var id = $(this).val();
       var options = $(this).data('options').filter('[value=' + id + ']');
       $('#select2').html(options);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>'



<select name="select1" id="select1">
  <option value="1">Fruit</option>
  <option value="2">Animal</option>
  <option value="3">Bird</option>
  <option value="4">Car</option>
</select>

<select name="select2" id="select2">
  <option value="1">Banana</option>
  <option value="1">Apple</option>
  <option value="1">Orange</option>
  <option value="2">Wolf</option>
  <option value="2">Fox</option>
  <option value="2">Bear</option>
  <option value="3">Eagle</option>
  <option value="3">Hawk</option>
  <option value="4">BWM<option>
</select>

答案 1 :(得分:0)

你可以通过将你的get数据放入var来省略重复,尝试这样的事情,

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

注意:我没有测试过,因此可能存在小错误,代码仅用于创意目的。

答案 2 :(得分:0)

试试这个:

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

答案 3 :(得分:0)

我想你可以尝试这样:

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');