php内的javascript代码无法访问html元素。 document.getElementById不起作用

时间:2015-09-25 16:07:11

标签: javascript php html

php中的脚本中的

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>

1 个答案:

答案 0 :(得分:2)

document.getElementById('n')没有返回任何内容的原因是,它是在html的其余部分(包括你想要获取的元素)被加载之前执行的。

所以你有几个选择:

  1. 将您的javascript放在html下面(最后在结束</html>之前)。 这样,在元素加载到DOM之后,它将被执行

  2. 使用加载DOM时触发的函数,并将js代码放在那里。

  3. 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