<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
if (document.getElementById("popup")) {
window.alert("hi");
}
</script>
</head>
<body>
<h1 id="popup">dfdfs</h1>
</body>
</html>
我有一个简单的javascript,当h1 id退出时显示警告,但是我没有得到jquery中的警告message.code也可以提供帮助。
答案 0 :(得分:3)
将<script>
标记放在body
:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1 id="popup">dfdfs</h1>
<script type="text/javascript">
if (document.getElementById("popup")) {
window.alert("hi");
}
</script>
</body>
</html>
答案 1 :(得分:2)
因为您在script
完全加载之前执行了document
,所以找不到元素#popup
。
使用DOMContentLoaded
检查DOM
是否已完全加载。
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", function(event) {
console.log("DOM fully loaded and parsed");
if (document.getElementById("popup")) {
window.alert("hi");
}
});
</script>
ready
使用jQuery
,您可以使用ready
方法检查DOM
是否准备就绪。
$(document).ready(function() {
if ($("#popup").length) {
window.alert("hi");
}
});
script
移至body
您可以将script
移至body
的结束。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1 id="popup">dfdfs</h1>
// Move it here
<script type="text/javascript">
if (document.getElementById("popup")) {
window.alert("hi");
}
</script>
</body>
</html>
答案 2 :(得分:2)
在元素后写script
,使元素存在后运行。见代码:
<!DOCTYPE html>
<html>
<body>
<h1 id="popup">dfdfs</h1>
<script type="text/javascript">
if (document.getElementById("popup")) {
window.alert("hi");
}
</script>
</body>
</html>
同样的Plunkr是:&#34; http://plnkr.co/edit/0fznytLHtKNuZNqFjd5G?p=preview&#34;
答案 3 :(得分:0)
您的脚本位于您尝试检索的{ yourfieldsX: 'value'}
元素之上。因此,它在元素实际存在之前运行。
将脚本移动到页面底部,或将其包装在jQuery ready块中。并考虑将其移至外部文件。
h1
答案 4 :(得分:0)
while (lastCharInLine != firstCharInLine &&
Character.isWhitespace(getText().charAt(lastCharInLine - 1))) {
lastCharInLine--;
}
答案 5 :(得分:0)
优良作法是在<script>
中使用<body>
代码,因为它可以更快地加载来提高性能。
然后使用
<body>
<script>
$(function() {
if(document.getElementById("popup")) {
window.alert("hi");
}
});
</script>
</body>
答案 6 :(得分:-1)
下面的代码为您提供了解决方案
$(document).ready(function() {
if (document.getElementById("popup")) {
window.alert("hi");
}
});