我想使用jquery来更改查询字符串中的特定值,方法是根据从页面上的下拉选项中选择的内容来查找和替换该值。例如:
假设我们在当前页面上有以下查询字符串:?field1 = value1& field2 = value2& archived = yes
下拉选项为:
如果有人选择“非存档”,则jquery函数应对当前查询字符串执行查找和替换,并将archived = yes设置为archived = no,然后刷新页面。
以下是我现在的一些代码,但它没有进行查找和替换,它只是从下拉列表中选择了什么值,然后根据下拉html中设置的选项值更改页面。
<script type="text/javascript" src="/js/jQuery.min.js"></script>
<script>
jQuery(document).ready(function(){
jQuery("#dropdown").change(function(e){
window.location.href = jQuery("#dropdown").val();
});});
</script>
<select class="dropdown" id="dropdown">
<option value="#" selected="selected">Choose Type</option>
<option value="(set archived=no)">Non-Archived</option>
<option value="(set archived=yes)">Archived</option>
</select>
非常感谢任何帮助!
答案 0 :(得分:0)
试试这个
<强>的jQuery 强>
jQuery(document).ready(function () {
jQuery("#dropdown").change(function (e) {
if (window.location.href.indexOf("archived") > -1) {
window.location.href.replace(/(archived=yes|archived=no)/g, "archived=" + jQuery("#dropdown ").val());
} else {
window.location.href += "archived=" + jQuery("#dropdown ").val();
}
});
});
<强> HTML 强>
<select class="dropdown" id="dropdown">
<option value="#" selected="selected">Choose Type</option>
<option value="no">Non-Archived</option>
<option value="yes">Archived</option>
</select>
答案 1 :(得分:0)
这似乎有效:
var href="?field1=value1&field2=value2&archived=yes";
var testUrl = $(location).attr('href');
alert('Current URL = ' + testUrl);
jQuery("#dropdown").change(function(e){
if($("#dropdown").val() == "(set archived=no)") {
href = href.replace("archived=yes", "archived=no");
} else if($("#dropdown").val() == "(set archived=yes)") {
href = href.replace("archived=no", "archived=yes");
}
alert(href);
window.location.href = href;
});