使用Jquery获取data-fieldname属性的child / sub元素的值

时间:2018-02-23 13:56:31

标签: javascript jquery html

我正在尝试获取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;">&nbsp;<i title="Edit" class="icon-pencil"></i></span>
    </td>
</pre>
$("td").find("[data-fieldname='name']").children("span").val()

1 个答案:

答案 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。最有可能它适用于大多数浏览器,但某些对标准更严格的浏览器可能会导致代码出现问题。