2013-03-08 76 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