如何根据查询字符串参数

时间:2015-12-05 14:15:39

标签: javascript jquery css twitter-bootstrap asp.net-mvc-4

查询字符串参数_layout可能包含0到9之间的值 也可能会失踪。

如果查询字符串参数不存在,则项目0必须标记为已选中。 Bootstrap 3下拉菜单项应根据其值标记为已选中。 我尝试了下面的代码但是项目没有标记,因为span元素不支持onload事件。

如何解决?

<ul class="dropdown-menu" role="menu">
  <li>
     <a onclick="LaadiVorm(0)">
       <span onload="if(getParameterByName('_layout')=0)  $(this).css('glyphicon glyphicon-ok')" aria-hidden="true"></span>
        Vorm  0
     </a>
  </li>
  <li>
     <a onclick="LaadiVorm(1)">
        <span onload="if(getParameterByName('_layout')=1)  $(this).css('glyphicon glyphicon-ok')" aria-hidden="true"></span>
        Vorm  1
     </a>
  </li>
</ul>

getParameterByName来自How can I get query string values in JavaScript?

function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

使用jquery,bootstrap 3,ASP.NET MVC4。

同样使用此样式不会在未选择的项目之前保留空白区域。 结果是:

v Vorm 0
Vorm 1

如何对所有字幕进行校对,以便结果

v Vorm 0
  Vorm 1

不需要使用glyphicons,某些字体中的v字符或其他可理解的字符可用于标记当前项目。

1 个答案:

答案 0 :(得分:1)

我会尽力向你解释。

问题

  • onload对SPAN没有任何意义(它用于正文或img)。

  • $(selector).css(rules)用于设置CSS规则,而不是类。

  • 您可以将值与双等号(即a == b)进行比较。

我认为您应该删除onload并添加此Javascript:

$(document).ready(function(){
  var layoutParam = getParameterByName('_layout');
  $('.dropdown-menu li span').get(layoutParam).addClass('glyphicon glyphicon-ok');
});

对于对齐问题,您应该使用CSS添加左边距。也许:not() pseudo-selector可能有用:

.dropdown-menu li span:not(.glyphicon.glyphicon-ok){
    padding-left: 30px; //or a different dimension :)
}

小小提示

我建议您在id添加<ul>并在选择器中使用它。