- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
<?php
$dom = new \domDocument;
$dom->loadHTML('<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div>
<h1>Title1</h1>
<p><img src="" /></p>
<h1>Title2</h1>
<p><img src="" /></p>
<h1>Title3</h1>
<p><img src="" /></p>
<h1>Title4</h1>
<p><img src="" /></p>
<p><img src="" /></p>
</div>
</body>
</html>');
$xpath = new \DOMXPath($dom);
$nodelist = $xpath->query('//div/p/img');
foreach($nodelist as $k=>$v){
$title1 = $v->parentNode->previousSibling->textContent;
}
我想检索 h1 标签内的所有文本,但 previousSibling 属性似乎不起作用,它返回一个没有标签名属性的节点,它的 previousSibling 属性是“(省略对象值)”
我的路径必须遵循 img->p->previous h1 ,因为在我的例子中并不是每个 p 标签都有自己的 h1 标签。
谢谢!
最佳答案
根据您上面的标记,请注意 <p>
的直接同级实际上是换行符\n
.
作为替代方案,您可以先检查前面的同级并检查它是否是 <h1>
标签,如果是,则获取其 ->nodeValue
:
$nodelist = $xpath->query('//div/p/img');
foreach($nodelist as $k=>$v) {
// $previousSibling = $
$prev = $xpath->evaluate('./preceding-sibling::*[1]', $v->parentNode);
if($prev->length > 0 && $prev->item(0)->tagName === 'h1') {
echo $prev->item(0)->nodeValue, '<br/>';
}
}
关于PHP DOM previousSibling 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30075201/
我正在尝试使用按钮将 ul 中的 li 在列表中向上移动。我正在使用控制台跟踪某些变量,以查看我的代码是否正常运行。我在观察控制台时发现了一些非常奇怪的东西。 当我单击列表中某个项目的向上箭头时,变量
我想定位第一个在 div 中选择第二个 并使用 previousSibling属性(property),但它不工作。 test test document.getElementById('p2')
这个问题在这里已经有了答案: previousSibling not working (2 个答案) 关闭 6 年前。 这是演示代码,所以我只想遵循这样的模式:当用户单击按钮时,它会在 h3 标签中
loadHTML(' Title1 Title2 Title
Fiddle here fiddle 的基本解释:当有人开始在单元格中输入内容,然后按 Tab 键移开或取消焦点时,它会在其上方创建一个新行,清空底行,并将焦点移至该新行中的“下一个”输入元素排。它不
有人可以澄清为什么下面的代码返回#text 而不是'li' ? 第一个 li 的下一个 sibling 不应该是 li 吗?同样,最后一个 li 的前一个兄弟是 li ?
我一直在使用 native DOM 方法(我知道,对吗?)并且我有这样的结构: 我在 上使用 onClick标签,并希望从输入中检索值。在 Chrome/OS X 上,类似于
在YUI3中有什么方法可以得到一个元素的nextSibling和previousSibling吗?就像有: node.get('parentNode'); 其中节点是 DOM 中的某个节点。 最佳答案
我正在看一本学习 JavaScript 的书,它似乎有编码错误,因为我正在看的东西似乎不起作用。这是我拥有的: HTML: Examples of moving around in th
自从我开始学习 JavaScript 以来,我一直在阅读 Tim Wright 的这本名为Learning JavaScript 的书。 在这本书中,我找到了一章关于我们如何在 DOM 树中移动和定位
我不知道我是否知道javascript previousSibling 和previousElementSibling 之间有什么区别。我试过了,但没有找到任何比较或描述这个的问题或文章。也许这是因为
这个问题已经有答案了: How does NextSibling work? (2 个回答) 已关闭 5 年前。 在这个例子中,我想获取 2 个前一个同级的值 但这不行btn.previousSibl
在 Google 跟踪代码管理器中,使用元素、元素类、元素父类来触发代码非常容易。不幸的是,在这种情况下,我想抓取一个仅在同一个 中可用的元素。 因此,当人们单击“删除”链接(class=delete
使用 Chrome,我尝试定位列表中的另一个元素 One Two Three Four Five 所以这有效, document.getElementById("Three").parentNod
我有一个 XMLDataProvider,我需要将一个属性绑定(bind)到前一个同级项的属性。这是一个 XAML 示例: 是否可以仅使用绑定(bind)访问同级项的属性? 最佳答案 尝试对 Pre
我使用内联 SVG 创建了 map 。每个区域在悬停时亮起(用 CSS 解决)。我想要实现的是,当相应的地区名称悬停时,该地区也应该亮起。 我无法使用 CSS3 实现此目的,因为它没有 previou
如果我有这样的 HTML 代码: This is a test First Cell S
我是一名优秀的程序员,十分优秀!