如何通过单击链接为具有 URL 值的下拉列表设置值

How to set a value for a dropdown list with a value from URL by clicking on a link

本文关键字:URL 下拉列表 设置 何通过 单击 链接      更新时间:2023-09-26

我正在尝试通过单击链接(链接到同一页面)为下拉列表设置值,而我要为选择设置的值在链接中。
我试图这样做,但由于它搞砸了,所以没有用。
这是我使用的代码:

<html>
<body>
<select id="select">
<option value="one">Pen</option>
<option value="two">Paper</option>
<option value="three">Book</option>
</select>
<a class="link1" href="page.php?cc=three">Set select value</a>
<script> 
    function $_GET(param) {
        var vars = {};
            window.location.href.replace( location.hash, '' ).replace( 
                /[?&]+([^=&]+)=?([^&]*)?/gi, // regexp
                function( m, key, value ) { // callback
                vars[key] = value !== undefined ? value : '';
                }
            );
        if ( param ) {
            return vars[param] ? vars[param] : null;    
        }
            return vars;
    }
    var cc = $_GET('cc');
    var elmnt = document.getElementsByClassName('link1'),
        selectClasse = document.getElementById('select');
            function setSelect () {
            for (var i = 0; i < elmnt.length; i++) {
                elmnt[i].onclick = function () {
                selectClasse.value = cc;
                    }
        window.history.pushState('Form', 'My form', this.getAttribute("href"));
        return false;
        };
    }
}
setSelect ();
</script>
</body>
</html>  

任何帮助将不胜感激。

如果你想

使用链接及其网址参数来做到这一点;

基于答案:https://stackoverflow.com/a/979996/2956448

所以你可以这样做;

var params = {};
if (location.search) {
var parts = location.search.substring(1).split('&');
for (var i = 0; i < parts.length; i++) {
    var nv = parts[i].split('=');
    if (!nv[0]) continue;
    params[nv[0]] = nv[1] || true;
}
}
var cc = params.cc;
var element = document.getElementById('select');
element.value = cc;