我需要根据产品的网址隐藏产品的某些选项。然而,对我来说这有点棘手,因为在这种情况下我无法定位期权价值。
示例网址:http://www.website.com/department/alabama/shirt.html
<select id="select_135">
<option value="">-- Please Select --</option>
<option value="1849" selected="selected">NONE </option>
<option value="1850">Alabama 1</option>
<option value="1851">Alabama 2</option>
<option value="1852">Arizona</option>
<option value="1853">California</option>
<option value="1854">Texas</option>
</select>
在这种情况下,我想隐藏所有不具有Alabama字样的选项,而不使用值编号。目标是让它在网站范围内工作,所以如果它们在另一个类别上,它将使用新的URL做同样的事情。
因此对于下一个州:http://www.website.com/department/texas/shirt3434.html,它会做同样的事情,但对于德克萨斯这个词。
关于我如何做到这一点的任何想法?
答案 0 :(得分:0)
使用indexOf检查子字符串的出现次数。
var url = "http://www.website.com/department/alabama/shirt.html";
var s = $('#select_135 option');
var pieces = url.split("/");
var state = pieces[pieces.length-2];
for(var i = 0; i < s.length; i++) {
if(s[i].text.toLowerCase().indexOf(state) > -1) $(s[i]).show();
else $(s[i]).hide();
}
答案 1 :(得分:0)
使用下面的代码。检查DEMO
$( document ).ready(function(){
var url = " http://www.website.com/department/alabama/shirt.html";
// to get URL use below code
// var url = window.location.href;
url = url.split('/');
var word = url[url.length-2];
$("#select_135 option").each(function(){
if($(this).text().toLowerCase().indexOf(word) == -1){
$(this).hide();
}
});
});