【发布时间】:2019-04-24 11:37:42
【问题描述】:
我的目标是在加载页面时更改<path> 元素的fill 属性。
这是路径元素:
<path xmlns="http://www.w3.org/2000/svg"
style="fill:#ff0000;stroke:#000000;stroke-width:0.26458332px;stroke-
linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
d="M 71.895501,10.754349 94.88068,-28.80154 112.52047,12.892505 Z"
id="element"/>
路径元素位于 map.svg 文件中,我将 SVG 加载到我的 html 文件中,使用 <object> 元素,因为我已经看到 this 的答案,所以我决定使用 <object> 元素.
index.html
这是 HTML 文件:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Dental Ordination</title>
<script src="svg.min.js"></script>
<script src="jquery.min.js"></script>
</head>
<body>
<object type="image/svg+xml" data="map.svg"/>
<script src="main.js"></script>
</body>
</html>
main.js
这是我的 JavaScript 文件:
$(document).ready(function () {
$("#element").attr("fill", "blue");
});
执行时,路径填充不会改变。所以我尝试调试它,我已经输入了console.log($("#element").attr("fill"));,看看它返回了什么,它返回了undefined。
【问题讨论】:
-
我建议您阅读此内容:stackoverflow.com/questions/14376732/…。首先将
ID添加到您的对象标签中,然后您必须等待它加载才能查询它们的元素。 -
@D.Smania 我也试过了,返回同样的错误:
Cannot read property 'getElementById' of null at HTMLObjectElement.<anonymous>。
标签: javascript jquery html css svg