javascript - jQuery .attr() 对于现有属性返回 "undefined"

标签 javascript jquery html svg

我一直在尝试使用 jQuery (v2.1.4) 访问在 svg:rect DOM 元素上定义的自定义属性。确切的元素如下:

<rect id="lane2-diag_D" currentLane="2" class="draggableCircle" x="250" y="125" height="20" width="10" clr="Chartreuse" style="stroke: gray; stroke-width: 1px; fill: chartreuse;"></rect>

该元素是从另一个元素克隆的,并且它的 id 已更改。我尝试将属性添加到页面上的 svg 元素后访问该属性。

当我尝试使用 $('#lane2-diag_D').attr('currentLane') 访问 currentLane 属性时,它返回 undefined.如果我尝试使用 javascript 方法 document.getElementById('lane2-diag_D').getAttribute('currentLane') 访问它,它将返回正确的值。

对于所有其他元素属性,jQuery 返回它们的正确值。

我在 jQuery 语法中缺少什么?

最佳答案

您应该将代码放在准备好的函数中,它就会工作,请检查下面的示例。

希望这有帮助。

<小时/>

$(function(){
  alert($('#lane2-diag_D').attr('currentLane'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<rect id="lane2-diag_D" currentLane="2" class="draggableCircle" x="250" y="125" height="20" width="10" clr="Chartreuse" style="stroke: gray; stroke-width: 1px; fill: chartreuse;"></rect>

关于javascript - jQuery .attr() 对于现有属性返回 "undefined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35419333/

相关文章:

javascript - 在php中从数据库中获取值并将其存储在js文件中的数组中

javascript - 访问 JavaScript 函数内的输入文本框值

jquery - 为什么 JQuery hide() 和 show() 不起作用?

JavaScript 在新窗口中打开,而不是选项卡

php - 使用 iframe 或 javascript 将内容加载到 div

javascript - 使用 JavaScript 将 Canvas 转换为图像

javascript - 如何找到元素的 onClick 处理程序实际添加到 jQuery 的位置?

java - 从 MySQL 数据库检索值仅提供空值

php - 具有相同 html 的两个页面呈现不同的效果

javascript - 如何将链接文本更改为 HTML 中的图像