2013-03-08 73 views
0

嗨,試圖讓這個工作。iframe和使用jquery只加載表並刪除行或列

在div中有一個iframe。我加載的iframe有:

<iframe src="abc.com" id="divtoshow" border="0" scrolling="no" allowtransparency="true"></iframe> 

是它足以類型ID告訴iframe來只加載該div而忽略頁面上的其他div的代碼。

下一部分是刪除iframe加載的表中的行和列。如何刪除每個更多然後1?和刪除行一樣嗎?

$('table tr').each(
    function(tr_idx,el){ 
     $(el).children('td').each(
      function(td_idx,el2){ 
       //i'm removing first columns.. 
       if(td_idx == 0){ 
        el2.remove(); 
       } 
     });//inner each 
});//outer each 

謝謝

+0

「一些谷歌是夠類型ID告訴iframe來只加載該div而忽略其他的div頁上的代碼。 「 - 不,這意味着IFrame的ID爲「divstoshow」,這並不影響其內容。 – cIph3r 2013-03-08 21:01:35

+1

你可以通過js訪問iframe的內容嗎? 你是否從同一個域加載內容?由於同源策略 – cIph3r 2013-03-08 21:02:35

+0

您需要刪除什麼? – dfsq 2013-03-08 21:06:36

回答

0

Dwhizz,

除非你是從極不可能在同一個域中加載一個iframe(讀作:不可能)渣土周圍使用任何iframe的內容腳本語言。這是瀏覽器中的問題,是一個安全問題。

那麼快的回答是「不,你將不能夠做到這一點,停止嘗試」

如果你能在你試圖通過AJAX加載域獲得,那麼你可能使用有一些運氣jQuery的AJAX.load快捷方式。

閱讀:http://developer.chrome.com/extensions/xhr.html和做的「跨域AJAX」或「交叉域iframe」

+0

它在同一個域上 – alwayslearning 2013-03-09 13:14:12

+0

Gotcha,那麼如果我們假設你已經通過JavaScript訪問的內容(爲什麼iframe在那種情況下,但誰在乎。) 首先,iframe將加載整個網頁的URL,所以你必須使用jQuery或JavaScript來翻出你想要的div。另一種方法是查看jQuery的負載 - http://api.jquery.com/load/。這將讓你只加載一個特定的div從一個url到任何元素。那將是第一步。 – 2013-03-09 20:11:03

+0

現在,在列或行上,行很容易,因爲您已經顯示了它的行 $('table tr')。each(function(index,ele){}); ... 列有點困難,你最終要麼做一些瘋狂的循環,要麼使用第n個子選擇器 - http://api.jquery.com/nth-child-selector/,所以像這樣: //刪除第四列,但請注意,這對於colspan來說並不合適,因爲您必須像瘋子一樣循環。 $('table td:nth-​​child(3)')。remove()等 – 2013-03-09 20:15:42