2016-11-09 44 views
2

enter image description here訪問iframe中,而無需I幀ID

我試圖訪問IFRAME這是在表裏面。 有人可以請建議如何訪問使用jQuery的?

<table class="cke_editor"> 
    <tr> 
     <td id="cke_contents_short_description"> 
      <iframe> 
       <html> 
        <body id="cke_pastebin" style="color:red"> 
        </body> 
       </html> 
      </iframe> 
     </td> 
    </tr> 
</table> 

我的問題是我想刪除從jQuery的cke_pastebin風格,是表> IFRAME> TD內。

其實我已經做了簡單的身體標記。如下所示,它工作正常。

$(document).ready(function() { 
    var isId = (document.body.id === 'cke_pastebin'); 
    if (isId) { 
     $("#cke_pastebin").removeAttr("style"); 
    } 
}); 

有人可以建議我該怎麼做?

+0

['.children()'](https://api.jquery.com/children/)可能會幫助你。 – Henders

+0

嗨亨德斯,感謝您的回覆,但沒有不是。我已經嘗試過,但沒有工作 – Punam

+0

您在整個html頁面中有單個iframe或多個? –

回答

0

試試這個更新過的語法:

$(document).ready(function() { 
    var temp = $(document).find("#cke_contents_short_description iframe").contents(); 
    temp.find('html body').html("Hello There , I am done it").css("color","red"); 
}); 
+0

你好瑞裏, 感謝您的答覆。我嘗試過, var element = $('table.cke_editor')。find('iframe')。child('body#cke_pastebin'); alert(element); 但它不起作用 – Punam

+0

以上是什麼?你有沒有試過另一個答案? –

+0

是的,我也試過,但沒有工作 – Punam

1

可以使用.children()方法看細節here獲得子元素。

我加入的代碼片段刪除其樣式屬性請檢查。

$(document).ready(function() { 
 
    $("#cke_contents_short_description").children().removeAttr('style'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table class="cke_editor"> 
 
    <tr> 
 
    <td id="cke_contents_short_description"> 
 
     <iframe style="width:500px;"> 
 
     <html> 
 

 
     <body id="cke_pastebin" style="color:red"> 
 
     </body> 
 

 
     </html> 
 
     </iframe> 
 
    </td> 
 
    </tr> 
 
</table>

另一種方法

試試下面的代碼可能是它可以幫助。

所有的
<script> 
    $(document).ready(function() { 
     $(".cke_editor > tbody > tr > td > iframe > body").removeAttr('style'); 
    }); 
</script> 
+0

這是行不通的 – Punam

+0

@Joe我已經用代碼片段更新了我的答案,請檢查。 – Tiger

+0

感謝您的回答,但我想從「cke_contents_short_description」中刪除特定的「cke_pastebin」樣式 – Punam

0

首先,你可以做到這一點只能對同一域 I幀,否則這將是cross site scripting。爲了您的iframe標籤中訪問文檔:

var iframe =$("#cke_contents_short_description").children("iframe")[0]; 
var innerDoc = $(iframe).contents(); 

然後,您可以在iframeDocumentfind()元素與所需id屬性,並在其上運行的代碼去除。

+0

這不起作用。 – Punam

+0

請問你能更具體嗎? – wscourge

+0

你確定, 其實我正在使用ckeditor,其中cke_pastebin是一個ID,它具有溢出,位置,top n all等一些屬性。 n是在表格內的iframe html body下。如果iframe正文的ID爲「cke_pastebin」,我想刪除所有屬性。 – Punam