解析HTML和变化锚仅适用于每个跨度
问题描述:
我要替换HTML每一个锚,并具有使用该代码的第一锚但似乎缺少点什么:解析HTML和变化锚仅适用于每个跨度
foreach($html->find('div') as $dict) {
$dict->find('SPAN', 0)->find('A', 0)->href = "link.php?" . $dict->find('SPAN', 0)->find('A', 0)->innertext;
}
的HTML结构是这样的:
<DIV>
<SPAN>
Text text text <A HREF="link1.php">LINK_A</a>,
text text <A HREF="link1.php">LINK_B</a>.
</SPAN>
</DIV>
...
我应该用什么代码做的是改变所有的HTML锚成为:
<DIV>
<SPAN>
Text text text <A HREF="link.php?LINK_A">LINK_A</a>,
text text <A HREF="link.php?LINK_B">LINK_B</a>.
</SPAN>
</DIV>
...
但代码只适用于每个跨度第一锚,如:
<DIV>
<SPAN>
Text text text <A HREF="link.php?LINK_A">LINK_A</a>,
text text <A HREF="link1.php">LINK_B</a>.
</SPAN>
</DIV>
...
我试图修改变成代码:
foreach($html->find('div') as $dict) {
foreach($dict->find('SPAN', 0)->find('A', 0) as $anchor) {
$anchor->href = "link.php?" . $anchor->innertext;
}
}
但它得到最差。我怎样才能做到这一点?谢谢。
答
你宣布你要查找的第一个跨度只有在这里......
$dict->find('SPAN', 0)
// The 0 means the first one only I expect
答
你只循环每个div,而不是你找到的每个锚标签。你的JavaScript代码看起来效率也很低。我不熟悉你使用的方法,但在jQuery中,你可以做这样的事情
$("dic span a").each(function){
//do something here
//refer to the anchor tag using $(this)
})
+1
我认为这是php – 2013-04-21 14:02:46
+0
@罗伯特:嘿谢谢,但比利是真的,它是PHP。 :) – 2013-04-22 00:51:49
谢谢!有用! :) – 2013-04-21 14:08:54