根据 URL 中的关键字隐藏带有 Javascript 的下拉选项

Hide dropdown options with Javascript based on keyword in the URL

我需要根据它们的来源 URL 隐藏产品的某些选项。然而,这对我来说有点棘手,因为在这种情况下我无法定位选项值。

示例 URL: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>

在这种情况下,我想隐藏所有没有“阿拉巴马”一词的选项,而不使用值编号。目标是让它在整个站点范围内工作,所以如果他们在另一个类别中,它会做同样的事情,但使用新的 URL.

所以对于下一个州:http://www.website.com/department/texas/shirt3434.html,它会做同样的事情,但对 Texas 这个词。

关于如何做到这一点有什么想法吗?

使用 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();
}

使用下面的代码。检查 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();   
   }
 });
});