Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 父项和子项选择,可';t访问第一个父级(jquery)_Javascript_Jquery_Jquery Selectors_Parent_Children - Fatal编程技术网

Javascript 父项和子项选择,可';t访问第一个父级(jquery)

Javascript 父项和子项选择,可';t访问第一个父级(jquery),javascript,jquery,jquery-selectors,parent,children,Javascript,Jquery,Jquery Selectors,Parent,Children,我对jquery的父/子选择有问题 我有一个HTML页面,如下所示: <tr> <input type='checkbox' /> //1st checkbox <.. some stuff ../> </tr> <tr> <td><input type='checkbox' /></td> //2nd checkbox <td> <select

我对jquery的父/子选择有问题

我有一个HTML页面,如下所示:

<tr> 
   <input type='checkbox' /> //1st checkbox
   <.. some stuff ../>
</tr>
<tr>
   <td><input type='checkbox' /></td> //2nd checkbox
   <td>
     <select id='stateChanger' onchange='stateChanger();'/>
       <option> ...</option>
       ...
   </td> 
</tr>
如果有人有想法帮助我,我可以发布完整的代码。 谢谢Victor

您可以使用:

function stateChanger(obj) {
  $(obj).closest("tr").find("td:first input[type='checkbox']").attr("checked", "true")
}
并将
this
添加到
onchange='stateChanger();'onchange='stateChanger(this);'

这将检查第二个

演示

功能状态变换器(obj){
$(obj).closest(“tr”).find(“td:first input[type='checkbox']).attr(“checked”,“true”)
}

...
特克斯特

closest()
查找目标元素最近的父元素。

您可以像下面这样使用

function stateChanger(){
$('#stateChanger').closest('tr').find('td:eq(0)).find('input[type=“checkbox”]).prop('checked',true);
}
表td{border:1px solid#999;}

选择值
选择1

尝试
stateChanger(this)
然后
函数stateChanger(obj){$(obj).closest(“tr”).find(“td:first-input[type='checkbox']).attr(“checked”,“true”)
在修复HTML后,jQuery行完全按照它应该做的那样做:(尽管您希望使用
prop
而不是
attr
)我只需删除find中的冒号,并将其替换为空白。
function stateChanger(obj) {
  $(obj).closest("tr").find("td:first input[type='checkbox']").attr("checked", "true")
}
$('#stateChanger').closest('tr').find("td input[type='checkbox']").attr("checked","true");