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

标签 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>

最佳答案

document.getElementById('n')的原因不返回任何内容是,它是在加载 html 的其余部分(包括您尝试获取的元素)之前执行的。

所以你有几个选择:

  1. 将 JavaScript 放在 html 下方(最好在结束 </html> 之前)。 这样,它将在元素加载到 DOM 后执行。

  2. 使用加载 DOM 时触发的函数,并将 js 代码放入其中。

2.1。一种方法是使用 jQuery 的 $(document).ready() :

$(document).ready(function() {
    document.getElementById("n").innerHTML="Do Something";
}

2.2。 SO-Post 中描述了一些普通的 JS 方法: pure JavaScript equivalent to jQuery's $.ready() how to call a function when the page/dom is ready for it

关于php 中的 javascript 代码无法访问 html 元素。 document.getElementById 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32786339/

相关文章:

回调函数中变量的PHP错误

php - 在 CakePHP 和 MySQL 中获取每日销售值

html - 是否可以更改 HTML 输入标记中文本的大小?

javascript - 需要使用提交表单在 CSS 中转换 HTML 表格

javascript - MVC3 使用 Javascript 进行回发,类似于 $.post 的工作方式 - 但具有实际的回发?

Javascript对象继承和异步

javascript - 仅使用javascript,如何在登录成功后在所有页面显示用户名?

javascript - 显示图像而不是源 - bootstrap 多选插件

php - 仅在 wordpress 主博客页面上显示标题摘录?

javascript - 如何更改 ace 编辑器中的背景图像?