我有一个select标签来选择类别,每个选项都包含类别编号作为值。 类别编号位于URL字符串中。 我试图编写一个JS来检查选项值是否与URL中的类别编号相同,如果是,则选择该选项。到目前为止脚本不能正常工作。 我做错了什么?
这是代码:
function GetUrlValue(VarSearch){
var SearchString = window.location.search.substring(1);
var VariableArray = SearchString.split('&');
for(var i = 0; i < VariableArray.length; i++){
var KeyValuePair = VariableArray[i].split('=');
if(KeyValuePair[0] === VarSearch){
return KeyValuePair[1];
}
}
}
function compareValue(){
var x = document.getElementById("selectcategory").length;
for (var i = 0; i < x; i++){
var categNo = document.getElementById("selectcategory").options[i];
var UrlValue1 = GetUrlValue('icid');
if (categNo === UrlValue) {
document.getElementById("selectcategory").options[i].selected = true;
}
alert(UrlValue1);
}
}
如果需要,我会发送一个工作链接。 如果用jquery做这件事比较容易,我会很乐意学习。
感谢名单。
答案 0 :(得分:1)
问题是categNo
应该是相应选项标记的值。此外,在循环中缓存select元素而不是重新查询DOM也是更好的选择:
function compareValue() {
var select = document.getElementById("selectcategory");
var x = select.options.length;
for (var i = 0; i < x; i++) {
var categNo = document.getElementById("selectcategory").options[i].value;
var UrlValue = GetUrlValue('icid');
if (categNo === UrlValue) {
select.options[i].selected = true;
}
}
}