使用jQuery选择表单中的父项和子项

时间:2014-12-13 04:42:21

标签: javascript jquery

我的服务器端脚本中有一个循环,它在这种变体中输出了许多形式:

<form class="myForm">
    <input type="checkbox" class="myCheckbox" />
    <div>
         <span class="myButton active">Button 1</span>
         <span class="myButton">Button 2</span>
         <div clas="myDiv">
             <select class="mySelect">
                 <option></option>
                 ...
                 <option></option>
             </select>
         </div>
    </div>
</form>

来自.myCheckbox我需要能够访问/选择此表单中的嵌套2 .myButton,并访问嵌套的.mySelect。什么是正确的选择器?

请记住,我在页面上有很多这些表单,只想要我正在使用的表单。

我已经开始了:

$('body').on('change', '.myCheckbox', function () {
  if ($(this).is(':checked')) 
    ...

感谢。

1 个答案:

答案 0 :(得分:0)

不应该像这样的工作:

var $form     = $(this.form);
var $elements = $form.find('.myButton,.mySelect');

当然,你可以通过观察兄弟姐妹或穿越dom来以其他方式实现这一目标。但很可能你的表单会添加元素,或从中删除。查找共同的祖先(例如,表单元素)将有助于使您的应用程序可扩展,并且对于将来的更改更加健壮。