我正在尝试获取html数据属性的子元素的值。当我在控制台中调用
时它会返回对象$("td").find("[data-fieldname='name']").children("span")
但是我无法获取值,并且当我调用
时它返回undefined$("td").find("[data-fieldname='name']").children("span").val()
有人可以建议我在哪里做错了吗? 我没有其他明显的方法来选择所需的跨度。
案例Html
<pre>
<td class="listViewEntryValue medium vte-hover-edit-container" data-field-type="string" nowrap="" data-fieldname="name" data-columnname="name" style="position: relative;">
<span class="vte-display-value dm-test">Mariana Scavelli</span>
<span class="vte-edit-show-btn cursorPointer" style="position: absolute; right: 0px; display: none;"> <i title="Edit" class="icon-pencil"></i></span>
</td>
</pre>
$("td").find("[data-fieldname='name']").children("span").val()
答案 0 :(得分:0)
循环遍历所有span子元素并获取span中的文本:
$("td").find("[data-fieldname='name']").children("span").each(function(){
let text = $(this).text();
});
循环遍历所有span子元素并获取元素名称:
$("td").find("[data-fieldname='name']").children("span").each(function(){
let name = $(this).attr('name');
});
span不是输入元素,也没有值。 .text()
获取span元素内的文本。 Span仅支持HTML全局属性。有关这些属性的更多信息,请参见此处。
https://www.w3schools.com/tags/ref_standardattributes.asp
如您所见,此处未列出名称。因此,html 4.01和5标准中的span元素不支持name。最有可能它适用于大多数浏览器,但某些对标准更严格的浏览器可能会导致代码出现问题。