我创建了一个带有单选按钮的选项列表,它看起来像这样:
<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的结果。
我希望有人能给我一个答案。
提前致谢!
答案 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);