Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.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
JQuery父级->;子女选择_Jquery_Selector - Fatal编程技术网

JQuery父级->;子女选择

JQuery父级->;子女选择,jquery,selector,Jquery,Selector,我有一组文本框,我想在客户端执行一些操作。我想使用JQuery来实现这一点。我的问题的简化示例如下 <asp:TextBox ID="Don'tSelectME_1" runat="server" /> <table id = "outer_1"> <table id="inner_1"> <tr> <td> <asp:TextBox ID="SelectME_1" runat="server" /&

我有一组文本框,我想在客户端执行一些操作。我想使用JQuery来实现这一点。我的问题的简化示例如下

<asp:TextBox ID="Don'tSelectME_1" runat="server" />
 <table id = "outer_1">
  <table id="inner_1">
   <tr>
    <td>
     <asp:TextBox ID="SelectME_1" runat="server" />
    </td>
    <td>
     <asp:TextBox ID="SelectME_2" runat="server" />
    </td>
   </tr>
  </table>
  <table id="inner_2">
   <tr>
    <td>
     <asp:TextBox ID="SelectME_3" runat="server" />
    </td>
    <td>
     <asp:TextBox ID="SelectME_4" runat="server" />
    </td>
   </tr>
 </table>
</table>

如果不讨论嵌套表(宁愿亲自使用div),我想选择两个嵌套表中的文本框


我正在尝试使用类似$('table[id=“outer_1”]>table>tr>td>input)的方法来获取所有文本框输入。不工作,但是,有人有任何想法吗?我认为“>”选择器在选择器中只能使用一次。提前感谢大家

它不起作用,因为

  • (几乎所有浏览器都会插入
    tbody
    标记:

    $(“#外部_1>车身表>车身>tr>td>输入”)

  • 表的HTML标记不正确

看这把小提琴:

但是,您可以通过以下方式简化选择器:

$(“#外部#u 1#内部_1:input”)
(如果必须使用外部表格)

或者
$(“#内部_1:input”)
(因为您在内部表上也有id)


试试这个,它更灵活

$("table").find("input")
或仅适用于子表

$("table table").find("input")
是一个实时工作示例,我还修复了您的无效表格html…

不是(仅和)的有效(直接)子级,不同的浏览器将以不同的方式处理此错误,有些浏览器将为您填充缺少的元素,因此,对于某些浏览器,正确的选择器应该是:
#outer_1>table>tbody>tr>td>table>tbody>tr>td>input
,对于其他浏览器,可能是
#outer_1>table>tr>td>input

我的建议是,首先,如您所说,对容器使用div,而不是没有行或单元格标记的元素,如果您不介意选择#outer_1的所有后代元素,您的选择器可以简化为:

$('#outer_1 input')

作为旁注,你能发布生成的HTML而不是ASP代码吗?

我总是想知道为什么人们使用
.find()

$("#outer_1 input")

将获取指定表中的所有输入标记。解释一下,这意味着找到ID为
#outer_1
的对象,然后搜索标记类型为
input

的所有decentant,
选择器表示直接子对象,如果不能保证这一点,则将其忽略。“没有,只留下一个空间,意味着在任何深度都有一个孩子。”“布鲁西,不,事实上这是真的。大多数浏览器都会添加
标记,无论您是否在源代码中提供了标记。您是如何将我的HTML加载到fiddle中的?@R-Tard-谢谢您的帮助,令人惊讶的是,即使在这么多年之后,您仍然会错过一些小事情。。删除了我的评论
$("#outer_1 input")