必须有一些显而易见的事我做错了,但我没有看到它。我已经使用JQuery获得了对DOM元素的引用。它有以下innerHTML(来自javascript调试器):
<INPUT type=hidden name=Item.ItemIndicators[0].Indicator.Strategies[0].Description>
<INPUT style="DISPLAY: none" class=checkbox value=00000000-0000-0000-0000-000000000000 type=checkbox name=Item.ItemIndicators[0].Indicator.Strategies[0].Id>
<INPUT value=-1 type=radio name=Item.ItemIndicators[0].Indicator.Strategies[0].Weight>
<INPUT value=1 type=radio name=Item.ItemIndicators[0].Indicator.Strategies[0].Weight>
<INPUT type=text150 name=Item.ItemIndicators[0].Indicator.Strategies[0].Description>
但是,当我执行以下操作时,我会得到null。
var child = myElement.children(".checkbox");
“复选框”不是允许的类名吗?
谢谢!
对于Matt,完整代码如下:
var strategies = parent.children("div.strategy");
for (var i = 0; i < strategies.length; i++)
{
//strategies[i] is the element in question w/the innerHTML above
var checkbox = strategies[i].children(".checkbox"); //returns null
...elided...
}
附加信息:如果我执行以下操作,我会得到“对象不支持此属性或方法”:
var strategy = strategies[i];
var children = strategy.children(); //object doesn't support this property or method
不确定在这里使用的术语,但是从调试器中显示的属性,以及从这个错误,似乎jquery看不到策略对象作为jquery对象,而是作为dom元素(即,它缺少[0]属性)。但是,“策略[i] .children(”。复选框“)”这一行并没有引发同样的例外,这很奇怪。
答案 0 :(得分:3)
您需要确保从jquery wrapped sets / jquery对象调用jquery方法。
只需更改
之类的代码即可实现这一目标 $(parent).children("div.strategy").each(function(i){
var checkboxes = $(this).children(".checkbox");
...yourstuff ...
//'this' refers to each strategy dom element
}) ;
Children也是DOM元素的属性,因此可能会引起一些混淆。