我需要为sharepoint webpart编写自定义JS。因此,我需要找到每个TableRow,其中包含一个包含PDF文件超链接的子项。
直到现在我使用了以下选择器:
$('tr:has("a[href$="pdf"]")')
主要问题是所述超链接的父级嵌套在多个表格中。
我无法更改此布局。
基本上是:
<tr>
<tr>
<tr>
<a href=".pdf" />
</tr>
</tr>
</tr>
我只想找到超链接的直接父级。我该怎么做呢? 我不想用:
$('a[href$="pdf"]').parent()
答案 0 :(得分:2)
如果您知道嵌套级别始终为3,请使用:
$('tr tr tr:has(a[href$=pdf])')
否则,这将起作用:
$('tr:has(a[href$=pdf]):not(:has(tr))')
这是一个片段(为了简洁起见,我使用了<div>
而不是<tr>
):
var selected = $("div:has(a[href$=pdf]):not(:has(div))");
selected.addClass('selected');
&#13;
div {
border: 2px solid gray;
padding: 6px;
}
.selected {
border-color: blue;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<div>
<div>
<a href="http://example.com/foo.pdf">foo.pdf</a>
</div>
</div>
</div>
&#13;
......但坦率地说$('a[href$=pdf]').closest('tr')
可能更有效率。