以下是我获取属性的 jquery :
var numeroBat = $(this).parents('td').children('h3').attr('name');
HTML:
<td><h3 name="b0">Title</h3>
<ul><li>THIS....
我的命令很大,我确定有一个更漂亮,更短的方式?
答案 0 :(得分:1)
以下是我对上述问题的解决方案:
$("h3[name]").attr("name");
这将使用jQuery的CSS Selector来搜索具有属性h3
的元素name
。当找到这样的元素时,您可以按照自己的示例中的说明,使用.attr("name");
您还可以在“td”元素前面添加以下示例:
$("td h3[name]").attr("name");
希望这就是你所寻求的。
答案 1 :(得分:0)
我认为这是你能得到的最短时间:
var name = $(this).closest("td").children("h3:first").attr("name");
我只是稍微改变了它,以确保它只选择一个父“td”(最近的一个)和一个h3孩子(第一个)。
.closest("td")
上升到父链并找到第一个<td>
标记。 .children("h3:first")
获取第一个<h3>
标记为小孩。
如果您认为<h3>
中只有一个<td>
标记,那么您可以这样做:
var name = $(this).closest("td").find("h3").attr("name");
或者这个:
var name = $(this).closest("td").children("h3").attr("name");
.find()
和.children()
之间的区别在于.find()
会在<h3>
的任何位置找到<td>
,但.children()
仅查看<td>
的直接子女。如果你的标记在未来发生了一些变化,那么一个更灵活,而另一个则更加严格。这取决于你哪个更好。
显然,这与你最初提出的并没有太大的不同,但没有别的办法。你必须有一个操作才能找到合适的父级,一个用于查找<h3>
,一个用于获取所需的属性。