Выберите html-элемент, включенный в php, с помощью jQuery

#php #html #jquery #dom

#php #HTML #jquery #dom

Вопрос:

Я хотел бы выбрать включенный html-элемент с помощью jQuery. Как я могу этого добиться?

index.php

 <?php
    <html>
        <head>
            ...
        </head>
        <body>
            include('file.php');
        </body>
    <html>
?>
 

file.php

 <?php
    echo '<div class="test">test</div>';
?>
 

select.js

 let a = $('.test');
console.log(a); // returns undefined
 

Комментарии:

1. Убедитесь, что js-код запускается после появления html-элемента в DOM или при document.ready событии.

2. в структуре DOM <div class=»test»> отображается тест </div>?

3. @sergeykuznetsov Да, он есть в структуре DOM.

4. @u_mulder Я уже пробовал использовать document.ready, но это не сработало :/

5. <?php <html> ... Ммм…. Попробуйте поместить <?php перед своими вызовами PHP и завершить его перед повторным запуском HTML. т.е. <?php include('file.php'); ?> . Код даже не должен выполняться так, как сейчас.

Ответ №1:

Попробуйте выполнить свой скрипт после полной загрузки страницы.

 $(window).on("load", function() {
   let test = $('.test');
   console.log(test);
}); 
 

Ответ №2:

Код должен быть организован следующим образом: <?php Php.Code.Goes.Here ?> . Например, он может быть окружен HTML <b><?php print("HELLO!"); ?></b> . Появится сообщение: ПРИВЕТ!

Итак … вы видите проблему тогда, с…

 <?php
    <html>
        <head>
            ...
        </head>
        <body>
            include('file.php');
        </body>
    <html>
?>
 

HTML находится в PHP. Вы хотите, чтобы это:

 <html>
    <head>
        ...
    </head>
    <body>
        <?php include('file.php'); ?>
    </body>
<html>
 

Этот код, конечно, вообще не должен был выполняться, поскольку <?php <html> на самом деле не является допустимым синтаксисом PHP.