使用基于URL中的关键字的Javascript隐藏下拉选项

时间:2015-04-01 18:15:16

标签: javascript jquery magento

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

示例网址: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,它会做同样的事情,但对于德克萨斯这个词。

关于我如何做到这一点的任何想法?

2 个答案:

答案 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();   
   }
 });
});