对于以下代码:
<span class="map-marker" data-lng="101.7113506794"></span>
<span class="map-marker" data-lng="101.6311097146"></span>
var abc = $('.map-marker:first');
var xyz = abc.getAttribute("data-lat");
console.log(xyz);
字符串
我得到错误消息:TypeError: abc.getAttribute is not a function
。我做错了什么?
8条答案
按热度按时间sh7euo9m1#
试试这个可能是:
字符串
或者这个:
型
5gfr0r5j2#
abc
是一个jQuery对象,所以它没有getAttribute()
函数。它有一个attr()
函数。8i9zcol23#
我做错了什么?
您将 *jQuery对象 * 视为 *DOM元素 *。jQuery对象没有
getAttribute
方法。您可以使用.attr
或.data
代替。4bbkushb4#
您正在选择多个元素。select函数返回一个数组,该数组没有getAttribute函数。您可以使用for循环来遍历选择并获取属性值,或者可以使用索引器(例如[0])来获取特定元素的属性。
lsmepo6l5#
你试图得到“data-lat”,但你只定义了“data-lat”。
dbf7pr2w6#
刚刚进入这个问题.同意@菲利克斯克林尝试下面:
字符串
3ks5zfa07#
注意在具有动态作用域的事件处理程序中访问
this
。调用
this
上不存在的函数可能导致node.getAttribute is not a function
。hgb9j2n68#
NamedNodeMap
s可能有点挑战性。find
方法有时会返回NamedNodeMap
类型的元素内的属性,该类型也可以转换为数组;但是可选地,可以直接读取nodeValue
。以XML-RSS 2源为例,对于源中的每个item
,其特征图像通过标签<media:content url="the_value_here">
可用,阅读值可以通过指向rss_item.find("media\\:content")[0]['attributes']['url'].nodeValue
来实现,这是一个纯方法。按照控制台转储来找到您案例中的最佳实践。