2016-09-19 18 views
1

我正在使用tapestry,jquery,ajax的应用程序。如何将tapestry arraylist转换为jquery中的数组

我需要一个下拉菜单来充当自动完成下拉菜单。 所以我想将下拉选项arraylist放入一个数组并写入自动完成方法。 下面是现有的代码

  <td ><span jwcid="countryList" 
         onChange="javascript:onChangeCountry(this);" /> 
      </td> 

上面的标签转换成下拉框在运行时使用id = countryList。

我想将countryList的文本值存入一个数组,我该怎么做呢? 我尝试了下面的方法,但它只给了我第一个索引的文本。

 var carray= []; 
     $('#countryList :selected').each(function(i, selected){ 
     carray[i] = $(selected).text(); 
     }); 

    $("#xyz").autocomplete({     
       source: carray 
       }); 

我该如何获得carray中的所有文本值?

我在做什么错了?

请帮忙。

非常感谢。

回答

1

您可以像这样阅读option。您可以使用此代码,而不是尝试:

var options = []; 
 
$(document).ready(function() { 
 
    
 
    $('#myselect option').each(function(i, selected) { 
 
    options[i] = ($(selected).text()); 
 
    }); 
 

 
    console.log(options); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<select id="myselect"> 
 
    <option value="volvo">Volvo</option> 
 
    <option value="saab">Saab</option> 
 
    <option value="mercedes">Mercedes</option> 
 
    <option value="audi">Audi</option> 
 
</select>

+0

options.push工作! 。非常感谢 。推jquery方法? – summary

+0

@summary - 欢迎。 '.push()'是标准的JavaScript函数。 http://www.w3schools.com/jsref/jsref_push.asp – vijayP

+0

早些时候我写了$('#myselect option')。each(function(i,selected){carry] [i] = $(selected).text (); });但它不起作用。 – summary

相关问题