jquery找到最接近的给定类

时间:2012-02-17 13:11:18

标签: php jquery

我创建了一个带有单选按钮的选项列表,它看起来像这样:

<div class="option_list" style="width:150px; display:none; margin-top:0px;">
    <form id="formSales">
        <ul>
             <li><input type="radio" value="2012" name="YEAR" /></li>
             <li><input type="radio" value="2011" name="YEAR" /></li>
             <li><input type="radio" value="2010" name="YEAR" /></li>
             <li><input type="radio" value="2009" name="YEAR" /></li>    
        </ul>
        <input type="hidden" value="1" name="SALES" />
   </form>
</div>
<div class="table_content_results">
   <div class="results"></div>
</div>

使用jquery我发布表单,我希望在类结果的div中得到结果 使用class option_list

在div下面
$(".option_list ul li").click(function() {
    $.ajax({
        type: "POST",
        url: "data.php",
        data: $(this).parent('form').serialize(),
        complete: function(data) {

            $(this).siblings('.results').html(data.responseText);
        }
    });
    $(this).parent(".option_list").slideToggle(200);

    var value = $('input[name="YEAR"]:checked').val();
    $("#yearValue").text(value);
});​

我在jQuery中使用该类,因为我想在同一页面上为另一个表单复制相同的option_list。

问题是使用类结果获取div中data.php的结果。

我希望有人能给我一个答案。

提前致谢!

2 个答案:

答案 0 :(得分:3)

更改

$(this).siblings('.results').html(data.responseText);

$(this).parents('div').next().children('.results').html(data.responseText);

$(this)li所以您需要在找到下一个班级为div的孩子之前找到父results

缩减版本 - 但是工作示例 - &gt; http://jsfiddle.net/bFHJc/

更新

在聊天中讨论后,问题中的标记似乎不正确..这是完整的标记:

<div class="table_settings"> 
   <div class="stats_options" style="width:130px;"> 
      <div style="float:left">Boekjaar: <span id="getYearPurchase">2012</span></div> 
      <div style="float:right; margin-top:11px;"></div> 
      <div class="clear"></div> 
   </div> 
   <div class="option_list" style="width:150px; margin-top:0px;"> 
      <form id="formSales"> 
         <ul> 
            <li>one</li>
            <li>two</li>
         </ul> 
         <input type="hidden" value="1" name="SALES" /> 
      </form> 
   </div> 
</div> 
<div class="table_content_results"> 
   <div class="results"></div>
</div>    ​

这是用于发布到results div的JavaScript'定位器':

$(this).parents('.table_settings').siblings('.table_content_results').children('.results').html();

这是一个例子 - &gt; http://jsfiddle.net/9YWmW/3/

答案 1 :(得分:0)

试试这个:

 $(this).siblings('.results').html(data);

而不是

 $(this).siblings('.results').html(data.responseText);

在jquery中你不需要编写responseText,它需要在javascript ajax

或者你可以写

$('div.results').html(data);