Jquery 从HTML字符串获取父项

Jquery 从HTML字符串获取父项,jquery,html-table,Jquery,Html Table,我有一个动态创建的表行,因此我无法控制添加任何ID或类。 该行可以在表中以任何顺序显示。每行仅包含一列(td) 更新日期:2012年8月31日18:55 下面是html的外观示例 <table id="ctl00_MainContentPlaceholder_ctl00_CourseInfoTextList"> <tr> <td> <p> <span style="font-size:1.

我有一个动态创建的表行,因此我无法控制添加任何ID或类。 该行可以在表中以任何顺序显示。每行仅包含一列(td)

更新日期:2012年8月31日18:55

下面是html的外观示例

<table id="ctl00_MainContentPlaceholder_ctl00_CourseInfoTextList">
   <tr>
      <td>
         <p>
         <span style="font-size:1.1em"><span id="ctl00_MainContentPlaceholder_ctl00_CourseInfoTextList_ctl00_lblCourseInfoTypeText" style="font-weight:bold;">Subject Area</span></span>
         <br />
         <span id="ctl00_MainContentPlaceholder_ctl00_CourseInfoTextList_ctl00_lblCourseInfoText">BS, AP</span>
         </p>
      </td>
   </tr>
   <tr>
      <td>
         <p>
         <span style="font-size:1.1em"><span id="ctl00_MainContentPlaceholder_ctl00_CourseInfoTextList_ctl01_lblCourseInfoTypeText" style="font-weight:bold;">Course Content</span></span>
         <br />
         <span id="ctl00_MainContentPlaceholder_ctl00_CourseInfoTextList_ctl01_lblCourseInfoText">some more text</span>
         </p>
      </td>
   </tr>
</table>


主题领域

BS,AP

课程内容
更多的文字

有什么方法可以隐藏显示“主题区域”的行吗?

使用
。最近('tr')
,它将抓取下一个
标记DOM树:

$('#ctl00_MainContentPlaceholder_ctl00_CourseInfoTextList_ctl00_lblCourseInfoTypeText').closest('tr').hide();
您可以使用
.hide()
,而不是
.slideUp()
.fadeOut()
.remove()
等使用
最近('tr')
,它将抓取下一个
标记DOM树:

$('#ctl00_MainContentPlaceholder_ctl00_CourseInfoTextList_ctl00_lblCourseInfoTypeText').closest('tr').hide();

你可以使用
.hide()
,而不是
.slideUp()
.fadeOut()
.remove()

另一方面,ASP.NETWebForms会生成非常长的动态ID名称,我觉得在JS(混合后端和前端)中加入
的想法很可笑

只需使用结束选择器中的,保持JS干净

$('[id$="lblCourseInfoTypeText"]').closest('tr').hide();
// ^= means search from the end - and voila

Dunhamzzz是对的,最近的作品很棒(+1)

另一方面,ASP.NETWebForms会生成非常长的动态ID名称,我觉得在JS(混合后端和前端)中加入
的想法很可笑

只需使用结束选择器中的,保持JS干净

$('[id$="lblCourseInfoTypeText"]').closest('tr').hide();
// ^= means search from the end - and voila

我可能错了,但我想我可以回答我自己的问题:S

$("#ctl00_MainContentPlaceholder_ctl00_CourseInfoTextList tr:contains('Subject Area')").hide();
这有点选择性,不太可能抓住我们真正想要的“主题领域”的任何其他实例

$("#ctl00_MainContentPlaceholder_ctl00_CourseInfoTextList span:contains('Subject Area')").closest('tr').hide();

发现contains函数是这里的关键,所以谢谢大家:)

我可能错了,但我想我可以回答我自己的问题:S

$("#ctl00_MainContentPlaceholder_ctl00_CourseInfoTextList tr:contains('Subject Area')").hide();
这有点选择性,不太可能抓住我们真正想要的“主题领域”的任何其他实例

$("#ctl00_MainContentPlaceholder_ctl00_CourseInfoTextList span:contains('Subject Area')").closest('tr').hide();

发现contains函数是这里的关键,所以谢谢大家:)

id的模式是什么?它总是以
ctl00\u Main…
$('ctl00\u MainContentPlaceholder\u ctl00\u CourseInfoTextList\u ctl00\u lblCourseInfoTypeText')开头。parent().hide()?我打赌有更好的方法来解决这个问题,但是如果没有更多的上下文信息,很难提出任何建议。请详细说明我不明白?嗨,伙计们。谢谢你的回复。我添加了一些html示例和更多的解释。关键是“坏”行可能出现在任何带有任何数字的地方,例如ct100、ct108等。
id
的模式是什么?它总是以
ctl00\u Main…
$('ctl00\u MainContentPlaceholder\u ctl00\u CourseInfoTextList\u ctl00\u lblCourseInfoTypeText')开头。parent().hide()?我打赌有更好的方法来解决这个问题,但是如果没有更多的上下文信息,很难提出任何建议。请详细说明我不明白?嗨,伙计们。谢谢你的回复。我添加了一些html示例和更多的解释。关键是“坏”行可能出现在任何数字的任何地方,例如ct100、ct108等。从末尾开始是一个美元符号
[id$=“value”]
:)废话-大脑放屁:)还是太早了哈哈。谢谢你注意到这一点!你好很抱歉花了这么长时间回复。我在我的页面上试过,但它隐藏了所有tr。我在最初的帖子中不是很清楚,所以我添加了一个更详细的更好的html示例。就我所见,我们唯一知道且不会改变的独特价值是“主题领域”。不确定是否有办法达到这个目标?我还在学习所有的JQuery函数,从最后一个是一个美元符号
[id$=“value”]
:)废话-大脑放屁:)还是太早了哈哈。谢谢你注意到这一点!你好很抱歉花了这么长时间回复。我在我的页面上试过,但它隐藏了所有tr。我在最初的帖子中不是很清楚,所以我添加了一个更详细的更好的html示例。就我所见,我们唯一知道且不会改变的独特价值是“主题领域”。不确定是否有办法达到这个目标?我还在学习所有的JQuery函数。很抱歉迟了答复。我添加了一些html示例和更多的解释。关键是“坏”行可能出现在任何数字的任何地方,例如ct100、ct108、etcHi。很抱歉迟了答复。我添加了一些html示例和更多的解释。关键是“坏”行可能出现在任何数字的任何地方,例如ct100、ct108等