【发布时间】:2021-06-24 11:55:52
【问题描述】:
在我的 _Layout.cshtml 中,<span> 内有一个 <li>,例如:
<li id="li-id">
<span class="my-btn-click">Button</span>
</li>
只有 <li> 元素的 id 是已知的,我想获取 <span> 元素的类属性(其 id 和类未知)。
我试过了
var classAttr = $("#li-id").closest("span").attr("class")
但这给出了“未定义”。 任何帮助将不胜感激。
【问题讨论】:
-
.closest()只能向上工作。你必须使用$('#li-id').find('span').attr('class')(如果你使用jquery,你的问题只会说明javascript很难。) -
@cloned
.find以某种方式被收藏而不是 jQuery 中的简单子选择器? -
当您尝试
closest并没有成功时。你搜索过最接近的吗?它清楚地表明“对于集合中的每个元素,通过测试元素本身并遍历其在 DOM 树中的祖先来获取与选择器匹配的第一个元素。”。关键:遍历其祖先。其次,您不需要额外的 jquery/javascript 方法来查找它。您可以只更改选择器(在这种特定情况下)。第三,您发布的是 jquery 而不是普通的 javascript。请相应地更改您的标签 -
取决于您想要做什么以及您当前可用的内容。您可以将包装器存储在变量中并通过
find()定位多个元素。比如` var divs = $el.find('div'); var spans = $el.find('span')` 等