javascript - “src 属性”未从外部 JavaScript 文件或其他脚本块中获取值
问题描述
我正在尝试获取图像标签的“src”值并显示在警报框中。警报框消息说:“未定义”。如果脚本包含在一个块中,它就可以工作。但是从另一个脚本块或外部 JavaScript 文件中获取一个值,会丢失保存的值。
<!DOCTYPE html>
<html>
<head>
<title>Test src</title>
<script type="text/javascript">
var y = document.getElementById('content');
var z = y.src;
</script>
</head>
<body>
<img id="content" src="https://cdn.pixabay.com/photo/2017/10/17/19/04/adorable-2861801_960_720.png">
<script>
alert(z); // undefined?
</script>
</body>
</html>
解决方案
因为当执行此行时var y = document.getElementById('content');
,元素 img 尚未准备好,因此 y 为 null 并且 y.src 未定义,如果您更改为var z = "test"
,那么您可以看到警报显示正确:
<!DOCTYPE html>
<html>
<head>
<title>Test src</title>
<script type="text/javascript">
//var y = document.getElementById('content');
var z = "test";
</script>
</head>
<body>
<img id="content" src="https://cdn.pixabay.com/photo/2017/10/17/19/04/adorable-2861801_960_720.png">
<script>
alert(z); // undefined?
</script>
</body>
</html>
那么,如何解决呢?您可以var y = document.getElementById('content');
在声明 img 元素后将该行放在脚本块中:
<!DOCTYPE html>
<html>
<head>
<title>Test src</title>
</head>
<body>
<img id="content" src="https://cdn.pixabay.com/photo/2017/10/17/19/04/adorable-2861801_960_720.png">
<script>
var y = document.getElementById('content');
var z = y.src;
</script>
</body>
<script>
var y = document.getElementById('content');
var z = y.src;
alert(z); // undefined?
</script>
</html>
推荐阅读
- group-by - 将列数据分组并存储在 Mysql 中的单独命名列中
- spring-boot - spring-boot-maven-plugin build-info.properties
- google-developers-console - 您的付款资料目前已暂停 - Google 控制台
- r - 如何在传单地图中为形状文件的部分着色
- python - Dask 数据框:`set_index` 可以将单个索引放入多个分区吗?
- javascript - Javascript 生成的输入被忽略
- javascript - React Native:使用有效负载导航的操作未由任何导航器处理
- azure - 如何在 Azure 网关应用程序中传递密钥
- reactjs - 头像背景颜色在material-ui v5中没有动态变化
- java - Maven子模块不继承存储库标签