document.getElementById("n")
无法访问html中id="n"
的段落。
段落的内部html没有被更改。
我也试过jQuery,但它也无法改变innerHTML
。
<?php
$username="root";
$password="";
$servername="localhost";
$database="mydb";
$conn=mysqli_connect($servername,$username,$password,$database);
if(!($conn)){
die(mysqli_connect_error());
}
$sql="select passenger from place where source='chennai' and destination='bengaluru'";
$result=mysqli_query($conn,$sql);
if(mysqli_num_rows($result)>0){
echo '<script>document.getElementById("n").innerHTML="Do Something";</script>';
}
mysqli_close($conn);
?>
<html>
<head lang="en-us">
<title>Cards</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="js/materialize.min.js"></script>
<script src="jquery-1.11.3.min.js"></script>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="stylesheet" href="css/materialize.min.css">
<link rel="stylesheet" href="demo_css.css">
</head>
<body>
<p id="n"></p>
<div class="container" id="con">
<div class="card hoverable">
<div class="card-content waves-effect waves-block waves-light">
<h1 class="card-title activator grey-text text-darken-4" id="content"></h1>
</div>
<div class="card-reveal">
<span class="card-title grey-text text-darken-4">Passengers<i class="material-icons right">close</i></span>
</div>
</div>
</div>
</body>
</html>
答案 0 :(得分:2)
document.getElementById('n')
没有返回任何内容的原因是,它是在html的其余部分(包括你想要获取的元素)被加载之前执行的。
所以你有几个选择:
将您的javascript放在html下面(最后在结束</html>
之前)。
这样,在元素加载到DOM之后,它将被执行。
使用加载DOM时触发的函数,并将js代码放在那里。
2.1。一种方法是使用jQuery的$(document).ready()
:
$(document).ready(function() {
document.getElementById("n").innerHTML="Do Something";
}
2.2。 SO-Post中描述了一些vanilla JS方法: pure JavaScript equivalent to jQuery's $.ready() how to call a function when the page/dom is ready for it