我有以下代码片段,我正试图从中获取文字:
<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' - 但我无法弄清楚原因。我试过在这里搜索,我用谷歌搜索,我到处寻找试图解决这个问题,但空手而归。
答案 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的评论,我认为这是在客户端运行。