无法通过id或className获取元素

时间:2013-02-20 12:02:37

标签: javascript jquery dom iframe getelementsbyclassname

我有一个包含几个div和其他元素的iframe。我想将焦点设置在几个文本框中的一个文本框中。

我用过:

    a = iFrameObj.contentWindow.document.getElementById('myTxtBox');

   But here, a is null;

我可以使用以下代码访问文本框对象;

var myTextBox = iFrameObj.contentWindow.document.getElementsByTagName('input')[52];

但我想使用更通用的方法来获取对象而不是硬编码索引。

由于此文本框具有唯一的类名,因此我尝试使用以下代码:

var myTextBox = iFrameObj.contentWindow.document.getElementsByClassName('rgtxt')[0];

但我错了:

"Object does not support this property or method"

我的文本框的HTML是:

<input name="myTxtBox" type="text" class="rgtxt" id="myTxtBox" value="hello" style="display:block;color:Black;background-color:rgb(240, 241, 241);" readonly="readonly" />

有人可以帮助iFrame中这两种方法之间有什么区别吗?

3 个答案:

答案 0 :(得分:0)

检查

$("input[id$='myTxtBox']").val()

答案 1 :(得分:0)

试试这个

 $("#youriFrameID").contents().find("input.rgtxt").focus();

使用jquery ...

答案 2 :(得分:0)

getElementsByClassName方法仅在IE9 +上可用,因此错误消息是正确的(虽然不是那么清楚),IE8上没有这样的方法。

您可以在此处详细了解:http://msdn.microsoft.com/en-us/library/ie/ff975198(v=vs.85).aspx