【问题标题】:Hide parentNode based on grandChild innerHTML基于grandChild innerHTML隐藏parentNode
【发布时间】:2013-08-15 20:02:32
【问题描述】:

我需要根据 childNodes innerHTML 隐藏一整行。基本上,在我的表单中,我有一个状态下拉菜单,但单独隐藏它并不能顺利完成。如何将显示设置为无?

【问题讨论】:

  • $("nobr").filter(function () { return $.trim(this.childeNodes[0].nodeValue) === "Status"; }).closest("tr").hide()。这会找到所有<nobr> 元素,获取它们的第一个子节点(在示例中,它是一个带有空格的文本节点,然后是“Status”),并检查该值是否为“Status”。当然,您可以缩小 哪些 <nobr> 元素首先被定位。
  • 我按原样运行并得到错误:无法读取未定义的属性 0
  • 抱歉,我拼错了 - 这是childNodes,而不是childeNodes
  • 哦,哇,我看到了,以为它拼写很奇怪,但不认为这是一个错误。 KK生病再试一次,谢谢。编辑:工作,谢谢!你说我可以缩小一点,我该怎么做?

标签: javascript jquery parent-child innerhtml


【解决方案1】:

使用类似的东西:

$("nobr").filter(function () {
    return $.trim(this.childNodes[0].nodeValue) === "Status";
}).closest("tr").hide();

这会在页面上找到 所有 <nobr> 元素,获取它们的第一个子节点(在示例中,它是一个带有空格和类似“Status”的文本的文本节点),并检查其文本是“状态”。

如果<nobr> 中的元素顺序与示例显示的不符,或者在各行之间有所不同,或者其他任何情况,这肯定需要更新,因为这是一个非常具体的搜索。

当然,您可以缩小首先针对哪些<nobr> 元素。例如,如果您要定位的 HTML 仅在一个表格中,您可以先找到该表格,然后查看其中的 <nobr> 元素:

$("#table_id").find("nobr").filter(func...

【讨论】:

    猜你喜欢
    • 2018-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 2021-06-07
    • 2010-11-19
    • 2011-09-20
    相关资源
    最近更新 更多