使用DOM从具有特定ID的Div获取文本(getElementById帮助)

时间:2011-07-15 19:28:21

标签: php html dom

我有以下代码片段,我正试图从中获取文字:

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

我正在尝试使用id“user-sub-summary”中的文本 最终,我将获得此文本并将其显示在可编辑的文本框中,以便人们可以根据需要进行更改。

我现有的代码如下所示($ intro =上面的html代码段):

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

这只是在页面上返回'NULL' - 但我无法弄清楚原因。我试过在这里搜索,我用谷歌搜索,我到处寻找试图解决这个问题,但空手而归。

3 个答案:

答案 0 :(得分:1)

您需要声明一个doctype。 http://www.php.net/manual/en/domdocument.getelementbyid.php#100402

在解析之前验证数据始终是一个好习惯。

$ dom-&gt; validateOnParse = true;

答案 1 :(得分:0)

第一:我建议使用javascript框架(JQuery)

第二:确保您的DOM已完成加载。

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

希望有所帮助

答案 2 :(得分:0)

如果您使用的是动态HTML或jQuery,请确保在尝试“获取”之前将动态对象附加到文档模型中。或者选择它。也就是说,Javascript的getElementById方法搜索附加到文档根目录的DOM对象(直接或通过彼此附加的其他对象)。

在Javascript中,有关附加动态内容的示例,请参阅here。在第11行后面插入alert(currentDiv.innerHTML);以查看所需的文字。

在jQuery中,使用(其中&#34; parentId&#34;是附加到DOM文档根目录的对象的Id):

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

alert( childObject.text() );

对于user744186的评论,我认为这是在客户端运行。