如果标题令人困惑,我很抱歉这里有解释:
说我们有remotesite.com/page1.html
之类的远程页面,我们使用函数file_get_contents
来获取其来源,然后我们使用DOMDocument
编辑此来源,然后将其打印到我们的页面
$url = "remotesite.com/page1.html";
$html = file_get_contents($url);
$doc = new DOMDocument(); // create DOMDocument
libxml_use_internal_errors(true);
$doc->loadHTML($html); // load HTML you can add $html
//here we do some edits to remove or add contents
我想在打印之前将Div添加到内容中:
<div style="float: right; padding-right: 2px;"><a class="open_event_tab" target="_blank" href="some-hard-coded-text-here_'+content+'_title_'+lshtitle+'_event_'+id+'.html" >open event</a></div>
以下是我尝试过但'+content+'_title_'+lshtitle+'_event_'+id+'
的软编码部分(href
)无效
我知道下面的代码可能看起来很愚蠢,但抱歉我没有足够的知识在php
function createDivNode($doc) {
$divNode = $doc->createElement('div');
$divNode->setAttribute('style', 'float: right; padding-right: 2px;');
$aNode = $doc->createElement('a', 'openEvent');
$aNode->setAttribute('class', 'open_event_tab');
$aNode->setAttribute('target', '_blank');
$aNode->setAttribute('href', 'some-hard-coded-text-here_'+content+'_title_'+lshtitle+'_event_'+id+'.html');
$divNode->appendChild($aNode);
return $divNode;
}
我希望循环浏览从远程站点获取的源代码,以使每个td
看起来像下面的那个,并在关闭之前添加div
<td colspan="2">
<b>Video </b>
<span class="section">Sports</span><b>: </b>
<span id="category466" class="category">Motor Sports</span>
//here i want to add my div
</td>
6个小时的研究,我无法解决这个问题,因为我处于学习阶段,所以我决定在这个有用的社区问一个人
答案 0 :(得分:1)
现在仍然对您的问题感到困惑,但我认为,您想在每个div
内添加/附加动态td
,如果是这种情况,那么您可以试试这个(至少,你我会得到一个想法而且非常干净。
var content = 'someContent', lshtitle = 'someTitle', id = 'anId';
var attr = {
'class' : 'open_event_tab',
'target' : '_blank',
'href' : 'some-hard-coded-text-here_' + content + '_title_' + lshtitle + '_event_' + id + '.html',
'text' : 'open event'
};
var link = $('<a/>', attr);
var div = $('<div/>', { 'style' : 'float:right;padding-right:2px;' }).append(link);
$('#myTable td').append(div);
更新:(问题很混乱,所以下面给出了更新的答案)
只需下载Simple HTML DOM Perser和(documentation here)
即可 include('simple_html_dom.php');
$html = file_get_html('remotesite.com/page1.html');
foreach($html->find('table td') as $td) {
$td->innertext = $td->innertext . '<div>New Div</div>';
}
此外,仅修改td
class=category
个人
foreach($html->find('table td.category') as $td) {
$td->innertext = $td->innertext . '<div>New Div</div>';
}
你完成了。请注意<div>New Div</div>
,这只是一个例子,希望您可以根据自己的需要制作它。
示例的可能结果:
<table>
<tbody>
<tr>
<td colspan="2">
<b>Video </b> <span class="section">Sports</span><b>: </b> <span id="category466" class="category">Motor Sports</span>
<div>New Div</div>
</td>
</tr>
<tr>
<td colspan="2">
<b>Video </b> <span class="section">Sports</span><b>: </b> <span id="category466" class="category">Motor Sports</span>
<div>New Div</div>
</td>
</tr>
</tbody>
</table>
答案 1 :(得分:0)
JQUERY
如果你想在每个td的末尾插入div,请使用append()
$('td').append('<div>Test</div>');
在每个td开始时使用prepend
$('td').prepend('<div>Test</div>');
了解更多信息jquery website