Получить текст из Div с определенными идентификаторами, используя DOM (getElementById help) - PullRequest
1 голос
/ 15 июля 2011

У меня есть следующий фрагмент кода, из которого я пытаюсь получить текст:

<span class="article-title1"><div id="user-sub-summary">Love to get text</div></span>
<div id="user-sub-intro"><p>this is my intro paragraph</p></div>

Я пытаюсь получить только текст с идентификатором «user-sub-summary».Я собираюсь получить этот текст и отобразить его в редактируемом текстовом поле, чтобы люди могли изменить его, если захотят.

мой существующий код выглядит следующим образом ($ intro = фрагмент HTML выше):

$dom = new DOMDocument;
$dom->loadHTML($intro);
var_dump($dom->getElementById('user-sub-summary'));

Это просто возвращает «NULL» на странице - но я не могу понять, почему.Я пытался искать здесь, я гуглил, я искал везде, чтобы попытаться выяснить это, но пришел с пустыми руками.

Ответы [ 3 ]

1 голос
/ 15 июля 2011

Вам необходимо указать тип документа.http://www.php.net/manual/en/domdocument.getelementbyid.php#100402

И всегда полезно проверять данные перед анализом.

$ dom-> validateOnParse = true;

0 голосов
/ 02 мая 2016

Если вы используете динамический HTML или jQuery, убедитесь, что динамический объект добавлен к модели документа, прежде чем пытаться «получить» или выбрать его. То есть метод getElementById в Javascript ищет объекты DOM, прикрепленные к корню документа (напрямую или через другие объекты, прикрепленные друг к другу).

В Javascript см. здесь для примера добавления динамического содержимого. Вставьте alert(currentDiv.innerHTML); после строки 11, чтобы увидеть нужный текст.

В jQuery используйте (где «parentId» - это идентификатор объекта, присоединенного к корню документа DOM):

var childObject = $('<div id="childId">Text</div>');
$("#parentId").append(childObject);
alert( $("#childId").text() );

или

alert( childObject.text() );

И для комментария user744186 я предполагаю, что это работает на клиенте.

0 голосов
/ 15 июля 2011

сначала: я предлагаю использовать фреймворк javascript (JQuery)

секунда: убедитесь, что ваша DOM закончила загрузку.

$(document).ready(function(){
    alert($("#user-sub-summary").html());
});

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...