2014-06-18 88 views
-1

我有一个下拉菜单,列出了几个国家,我只想显示一些国家,具体取决于某些条件。使用jquery过滤下拉菜单

jQuery是如下:

function form_onLoad() { 

    var countries = ""; 
    if(document.forms[0].countries_new) { 
     countries = document.forms[0].countries_new.value; 
    }  

} 

下拉:

<select name="country" size="1"> 
    <option value=""></option>  
    <option value="1" >Afghanistan</option> 
    <option value="2" >Albania</option> 
    <option value="3" >Algeria</option> 
    <option value="4" >Andorra</option> 
    <option value="5" >Angola</option> 
    <option value="6" >Antigua & Deps</option> 
    <option value="7" >Argentina</option> 
    <option value="8" >Armenia</option> 
    <option value="9" >Australia</option> 
    <option value="10" >Austria</option> 
    <option value="11" >Azerbaijan</option> 
    <option value="12" >Bahamas</option> 
</select> 

jQuery的内部,我要取代现有的下拉菜单中(上图),其具有与国家变量的所有国家,只有几个选项。

+0

不清楚你想要什么??? –

+0

现有的下拉菜单有12个国家。在jQuery中,我只得到几个国家,也许只有2或3在document.forms [0] .countries_new – jrs

+0

从数据开始,并生成选项...这种方式,你可以根据你的标准过滤数据。 'var name ='{name:'Afghanistan',value:1},{name:'Albania',value:2},...]' – VDP

回答

0

您可以使用jQuery库来实现它

$('select[name="country"]').find('option').each(function(){ 
     if($(this).text()=='Armenia' || $(this).attr('value')=='12'){ 

      $(this).remove(); //It will remove Armenia and Bahamas 
    } 

}); 
+0

问题如果我知道我需要比较的||我可以使用这个。条款。它是动态的。正如我上面提到的,Countries_new变量来自java代码,它具有选项值,例如countries_new = 2,那么只有阿尔巴尼亚显示 – jrs

+0

只是为了重述我的问题:是否有办法通过将选项与下拉列表进行比较来删除选项变量。说国家= 2,所以只保留2,并通过将其与国家变量进行比较来删除其余国家。 – jrs

+0

如果Countries_new变量来自java代码(不是java脚本),那么可以在jsp中使用脚本代码来回显该变量。在JavaScript代码if($(this).text()=='<%= java_country_variable%'){//在这里做你的东西} – Vicky