如何分离从$ .get()回调函数收到的数据

时间:2011-03-22 20:19:35

标签: php jquery

我有这个:

<div ><span id="compareResult"></span>&nbsp;&nbsp;<span id="result"></span></div>


$.get(
      'data.php', 
      { valA: $(this,'option:selected').val() , valB:$(this,'option:selected').val()},
      function(childData){
            $('#result').html(childData).css('display', 'none')});>

PHP:

function getData($names,$id,$flag){
    if($flag==0){
    $strResult = '<select multiple class="sel" id="selectname" size='.count($names).'>';
    }
    if($flag==1){
    $strResult = '<select multiple class="sel" id="selname" size='.count($names).'>';
    }

    for($i=0; $i<count($names); $i++)
    {
        $strResult.= '<option value='.$id[$i].'>'.$names[$i].'</option>';
    }
    echo $strResult.= '</select>';}

如何拆分/解析.html(childData)中的响应,以便我可以将它放在不同的范围内(即id =“compareResult”)?

提前致谢。

3 个答案:

答案 0 :(得分:0)

这不会直接回答您的问题,但它会回答我认为的真正的问题。

如果数据来自您自己的服务器,我强烈建议您查看jQuery Taconite plugin。它让孩子通过AJAX进行多元素更新。您所要做的就是稍微改变数据传送到浏览器的格式。

说真的,看一下。

答案 1 :(得分:0)

在您html调用更新#result的HTML后,您将能够访问在后续调用中#result内插入的所有内容。

例如:

$.get(
      'data.php', 
      { valA: $(this,'option:selected').val() , valB:$(this,'option:selected').val()},
      function(childData){
            $('#result').html(childData).css('display', 'none');
            $('#result #someContainer').appendTo('#compareResult');
      }
);

答案 2 :(得分:0)

我最近回答了一个类似的问题,但您实际上可以通过创建响应的jQuery对象来从HTML响应中获取您可能需要的任何信息。例如:

var response = $("<div>This is my element <span class='a-thing'>Thing</span></div>");
alert(response.find('.a-thing').text());

在你的回调中,你可以做同样的事情:

$.get(
    'data.php', 
    { valA: $(this,'option:selected').val() , valB:$(this,'option:selected').val()},
    function(childData){
        var result = $(childData);
        alert(result.find('.some-selector').text());
    }
});