Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择框架内的所有html选择元素_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 选择框架内的所有html选择元素

Javascript 选择框架内的所有html选择元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我拥有html文档的以下结构: <frameset cols="25%,50%,25%"> <frame name="name1" src="frame_a.htm"> <frame name="name2" src="frame_b.htm"> </frameset> 但这没有帮助。 此外,我尝试提醒帧,它起作用了: jQuery("frame[name='name1']").each(function( index )

我拥有html文档的以下结构:

<frameset cols="25%,50%,25%">
    <frame name="name1" src="frame_a.htm">
    <frame name="name2" src="frame_b.htm">
</frameset>
但这没有帮助。 此外,我尝试提醒帧,它起作用了:

    jQuery("frame[name='name1']").each(function( index ) {
        alert("test1");
    } );
但当尝试警告所有选定元素时,它不会:

    jQuery( "select" ).each(function( index ) {
        alert("test2");
    });
注意:我使用以下方式加载代码:

<script>
    jQuery(document).ready(function() {
        //here I put JavaScript code
    });
</script>

jQuery(文档).ready(函数(){
//在这里,我放置了JavaScript代码
});
试试看

你应该试试

$("frame[name='name1']").contents().find("select")
像这样试试

#("frame[name='name1']).contents().find("select").each(function( index ) {
 var elementID = jQuery(this).attr('id');
 alert(elementID);
});
#("frame[name='name1']").find('select').contents().find("select").each(function( index ) {
 var elementID = jQuery(this).attr('id');
 alert(elementID);
});

我所发现的,如果我错了,请纠正我

首先,我将代码放入主html文档的元素中。它看起来像:

<head>
    <script type="text/javascript" src="lib/jquery-1.10.2.min.js"></script>
    <script>
       // put JavaScript code here
    </script>
</head>
<frameset cols="25%,50%">
    <frame name="name1" src="frame_a.htm">
    <frame name="name2" src="frame_b.htm">
</frameset>
第二。我必须将所有JavaScript代码移动到子html文件中。在我的例子中,它们是
frame_a.htm
frame_b.htm
。现在每个文件都有以下JavaScript代码:

jQuery(document).ready(function() {
    for( var i = 0; i < parent.frames.length; ++i )
    {
        if( parent.frames[i].name == "name2" && self === parent.frames[i])
        {
            jQuery("select").each(function( index ) {
                var elementID = jQuery(this).attr('id');
                alert( elementID );
            });
        }
    }
});
jQuery(文档).ready(函数(){
对于(变量i=0;i

也许还有另一个更有效的解决方案,但这一个解决了我的问题。框架-是邪恶的,请尝试不要使用它们:)

您的选项对我不起作用:(无法理解为什么。以下选项会发出警报:jQuery(“frame[name='name1']”)。each(function(index){alert(“test1”);});但当我尝试为每个select元素发出警报时,它不起作用:jQuery(“select”)。each(function(index){alert(“test2”);});需要帮助:)@Alexandr,因为
select
元素不在当前文档根目录中,我看到了不同的文档。那么,如何找出你原来的选择没有帮助的原因呢?有什么建议吗?
$("frame[name='name1']").contents().find("select")
#("frame[name='name1']).contents().find("select").each(function( index ) {
 var elementID = jQuery(this).attr('id');
 alert(elementID);
});
#("frame[name='name1']").find('select').contents().find("select").each(function( index ) {
 var elementID = jQuery(this).attr('id');
 alert(elementID);
});
<head>
    <script type="text/javascript" src="lib/jquery-1.10.2.min.js"></script>
    <script>
       // put JavaScript code here
    </script>
</head>
<frameset cols="25%,50%">
    <frame name="name1" src="frame_a.htm">
    <frame name="name2" src="frame_b.htm">
</frameset>
jQuery("frame[name='name1']").load( function() { ...}
jQuery(document).ready(function() {
    for( var i = 0; i < parent.frames.length; ++i )
    {
        if( parent.frames[i].name == "name2" && self === parent.frames[i])
        {
            jQuery("select").each(function( index ) {
                var elementID = jQuery(this).attr('id');
                alert( elementID );
            });
        }
    }
});