我正在尝试从网站获取一个特定的div元素(即带有属性$( ".saveTaskEdit" ).click(function(event) {
var ta = $('.task_title').val();
var da = $('.task_description').val();
var taskID = $('.editTaskPanel').attr('data-id');
$.ajax({
type: "post",
url: "task-edit.php?t="+ ta + "&d=" + da + "&id=" + taskID,
contentType: "application/x-www-form-urlencoded",
success: function(responseData, textStatus, jqXHR) {
jQuery('p.status').text('Task Saved');
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(errorThrown);
}
})
});
),但我几乎得到了所有元素。你知道什么是错的吗?
id="vung_doc"
答案 0 :(得分:0)
更改
$query = "//*[@class='vung_doc']";
到
$query = "//*[@id='vung_doc']";
答案 1 :(得分:0)
实际上,似乎一个元素同时具有值 vung_doc 的 id 和 class 属性,其文本中包含许多段落内容。也许你认为每个段落都应该在它自己的 div 元素中。
<div id="vung_doc" class="vung_doc" style="font-size: 18px;">
<p></p>
"Mayor song..."
在这篇文章底部的屏幕截图中,我为该元素添加了一个大纲样式,以显示该元素中有多少个段落。
如果您想分隔段落,可以使用preg_split()拆分任何换行符:
$entries = $xpath->query($query);
foreach($entries as $entry) {
$paragraphs = preg_split("/[\r\n]+/s",$entry->textContent);
foreach($paragraphs as $paragraph) {
if (trim($paragraph)) {
echo '<b>paragraph:</b> '.$paragraph;
break;
}
}
}
查看此in this playground example的演示。请注意,在加载HTML文件之前,会调用libxml_use_internal_errors()来抑制XML错误:
libxml_use_internal_errors(true);
添加了大纲的目标 div 元素的屏幕截图: