jQuery,单击列表项Q.

时间:2012-01-30 15:15:02

标签: jquery

所以这是我的问题

我正在使用getJSON获取数据并且我创建了一个选项列表,即区域列表,这很好,现在我需要一个功能,点击列表项我得到另一个下拉菜单,其中包含该地区的城镇列表< / p>

所以我的代码是:

var encodedurl=escape("http:path");
$.getJSON("proxy3.php?url="+ encodedurl,

function(data) 
{   
$.each(data, function(i, item){
$("#grad_search").append('<option>' +item.city + "</option>");
});

所以我需要从行var encodedurl=escape("http:path");中的json发送变量,所以当列表项上的i click我将数据发送到另一个选择选项时

var encodeurl_area=escape("http://some_path" + VARIABLE + "more_path");
$.getJSON("proxy3.php?url="+ encodeurl_area,
function(data)
{
$.each(data, function(i, item){
                            $("#kvart_search").append('<option>' + item.city_area + '</option>');
});     
}); 

所以整个我的问题是如何在上面的链接中获得VARIABLE,我需要从我的第一个函数中获取VARIABLE

2 个答案:

答案 0 :(得分:1)

您的代码中应该注意的事情很少。

  1. 在开始添加新城市(选项)之前,您应该清除列表。
  2. 同样适用于城镇名单
  3. 填充选项时,每个选项都应该有一个值。此值可用于传递下一个要填充的列表。
  4. 像这样更改您的代码。

    var encodedurl=escape("http:path");
    $.getJSON("proxy3.php?url="+ encodedurl,
    
    function(data) 
    {   
       //Look here I am using empty method to clear the existing list  
       $("#grad_search").empty()
       $.each(data, function(i, item){
          $("#grad_search").append('<option value="' 
                           + item.cityId + '">' +item.city + "</option>");
       });
    }
    
    //Handle the change event and pass the selected value to get city areas(towns)
    $("#grad_search").change(function(){
       var encodeurl_area=escape("http://some_path" + $(this).val() + "more_path");
       $.getJSON("proxy3.php?url="+ encodeurl_area, function(data)
         {
            //Look here I am using empty method to clear the existing list  
            $("#kvart_search").empty()
            $.each(data, function(i, item){
                $("#kvart_search").append('<option value="' 
                           + item.cityAreaId + '">' + item.city_area + '</option>');
            });     
       }); 
    });
    

答案 1 :(得分:0)

你可以通过

获得价值
$(document).delegate("#grad_search","change",function(){

var variable = $(this).val(); //here you will get the selected value 
});