Javascript 如何设置通过查看MVC URL选择的下拉选项
您好,谢谢您让stackoverflow成为像我这样的程序员学习的好资源。为了帮助我的第一个MVC项目,我在这里读了很多答案,这是我第一次问 这是我的下拉列表HTMLJavascript 如何设置通过查看MVC URL选择的下拉选项,javascript,jquery,asp.net-mvc,html-helper,Javascript,Jquery,Asp.net Mvc,Html Helper,您好,谢谢您让stackoverflow成为像我这样的程序员学习的好资源。为了帮助我的第一个MVC项目,我在这里读了很多答案,这是我第一次问 这是我的下拉列表HTML <div class="dropdown"> <select id="assetSelect" onchange="location = this.options[this.selectedIndex].value;"> <option value="/History/Inde
<div class="dropdown">
<select id="assetSelect" onchange="location = this.options[this.selectedIndex].value;">
<option value="/History/Index/All">All Assets</option>
@foreach (var item in Model.NodeInfo)
{
<option value="/History/Index/@item.node.name">@item.node.name</option>
}
</select>
</div>
此函数是否与填充下拉列表的函数一起工作?这是最好的方法还是有HTML助手可以做到这一点?感谢您的帮助,谢谢 选项1。您可以显著简化代码:
function getCurrentPageId() {
var params = window.location.href.split('/');
return params[params.length - 1];
}
var pageId = getCurrentPageId();
$('#assetSelect').find('option:contains(' + pageId + ')').prop('selected', true);
不管怎么说,你的问题出在这一行:
var i = params.length;
var pageId = params[i];
它应该是params[i-1]
,因为您希望获取最后一个数组元素
选项2。一种更简单的方法也适用于您,即使用location.pathname
:
$('#assetSelect').val(window.location.pathname);
既然您已经在这里使用jQuery,我建议您从元素中删除OnChange属性,而是在选择脚本的末尾添加事件wirelup,比如:
$('#assetSelect').on('change',function(){window.location=$(this.val();})谢谢你,瑞克。就我的理解而言,为什么这是首选?
$('#assetSelect').val(window.location.pathname);