在控制台中获取所有带有文本类型的输入? iFrame中的页面[重复]

Posted

技术标签:

【中文标题】在控制台中获取所有带有文本类型的输入? iFrame中的页面[重复]【英文标题】:Get all inputs with type text in console? Page in iFrame [duplicate] 【发布时间】:2014-07-16 16:45:37 【问题描述】:

如何在按输入类型(文本|复选框|单选)匹配时将页面上的所有inputs 表单放入数组中?

javascript

像这样简单的js 会给我所有的inputs

var inputs = document.getElementsByTagName( 'input' );

现在使用 jQuery:

我已加载 jQuery 并尝试过:根据文档 (http://api.jquery.com/text-selector/)

$( "<input>" ).is( ":text" ); 
$( "<input>" ).is( "[type=text]" ); 

控制台错误信息:

TypeError: undefined is not a function
message: "undefined is not a function"
stack: (...)
get stack: function ()  [native code] 
set stack: function ()  [native code] 
__proto__: Error

附加信息:

我试图获取text 输入的页面位于 iFrame 中,整个交互在 webkit 中运行。

我的主页已加载 jQuery。 iFrame 页面没有。

需要使用 jQuery 从我的主页获取 iFrame 页面上的输入。

【问题讨论】:

除了确保 jQuery 已加载,正确的选择器应该是 $(':text') 在这里工作正常:jsfiddle.net/VAL49 @roland jquery 没有加载?这是为什么?我在页面上使用它... 另外,你并不“需要” jQuery 来对文本输入元素进行选择。 您的最后一次编辑彻底改变了问题。 【参考方案1】:

要使用 jQuery 选择输入,您可以这样做

$("input")

不需要括号。

选择所有文本输入

$("input[type='text']")

随着编辑引起的问题的变化,您可以在这里找到答案:Selecting an element in iFrame jQuery

【讨论】:

第二个示例并没有真正选择所有“文本输入”。它只选择带有[type='text'] 的输入,细微的差别但很重要。 @WesleyMurch 有什么区别? 例如它不能简单地匹配&lt;input name="foo"&gt;。这真的是您要问的吗,如何在 jQuery 中选择输入?【参考方案2】:

所以给出的答案是准确的,但你也可以这样做

$(':text")

这将为您提供所有文本输入项,在我看来只是更具可读性。 @Robbert 的回答再次准确

【讨论】:

【参考方案3】:

您选择所有 type="text" 的输​​入:

$(':text')

type="checkbox" 的输入使用:

$(':checkbox')

type="radio" 的输入使用:

$(':radio')

编辑以迎合新的iframe 信息

对于 iframe 中的输入,将分别转换为:

$('iframe').contents().find( ':text' );
$('iframe').contents().find( ':checkbox' );
$('iframe').contents().find( ':radio' );

【讨论】:

这并没有用新信息回答问题。 它现在按照上面的更新。

以上是关于在控制台中获取所有带有文本类型的输入? iFrame中的页面[重复]的主要内容,如果未能解决你的问题,请参考以下文章

iframe 内元素的 Tabindex

如何打印(在屏幕上)带有外部 url 的 iframe 所需的所有 JS 代码

使用 javascript 从指向不同域的 iframe 中获取选定的文本

控制 iframe 内的 Colorbox 位置

React.js 使用非状态变量获取错误作为组件正在更改要控制的文本类型的不受控制的输入

如何使用 javascript 或 JQuery 从不可见的 iframe 中获取隐藏字段值