2014-06-10 75 views
1

我使用PHP簡單DOM解析器,說我的標記是這樣插入Div

<table class="tb">..</table> 
<table>..</table> 
<table>..</table> 

我試圖

$banner = '<div class="ads">blablabla</div>'; 
foreach($html->find('tb') as $table){ 
    $table->outertext .= $banner; 
} 

但它循環的全部表。我試過find('div[class="tb"][1]')但它不起作用。我想要一個div只出現一次btw第一個和第二個表。

+0

你想用奧菱PHP沒有必要的jQuery? –

+0

@HariniSekar只是php – user3522725

+0

@kevinabelita爲什麼需要放在裏面?我把它放在外面,它工作,只是它遍歷所有的表格,我只希望橫幅出現在第一個和第二個表格中。 – user3522725

回答

0

首先,您正在嘗試查找類tb的div,而您應該查找表格元素。接下來,要將$banner值「附加」現有文本,您需要使用.=運算符,以便您的表代碼不會被擦除。最後,您保存更改。代碼應該是這樣的:

foreach($html->find('table[class=tb]') as $element){ 
     echo $element->src . '<br>'; 
     $element->outertext .= $banner; 
} 

$html->save(); 

輸出將是:

<table class="tb">..</table><div class="ads">banner</div> <table>..</table> <table>..</table> 
+0

如果我不保存它會發生什麼?因爲最後我回顯$ html – user3522725

+0

@ user3522725按照[這裏](http://simplehtmldom.sourceforge.net/manual_api.htm),看起來像save()是用來保存內容到文件中的,對於你的情況,你可以在沒有它的情況下繼續。 –

+0

說我有5張桌子,我用過的代碼,裏面有5個橫幅..就是這個問題 – user3522725