【发布时间】:2012-10-20 07:29:09
【问题描述】:
我有一个动态填充其他 div 的 div...
<div id="wrapper">
</div>
//javascript
for(//a bunch of times){
var d = document.cloneNode('divModel');
d.foo = {//bunch of stuff };
document.getChildById('wrapper').appendChild(d) is applied later to fill in child divs
}
现在我想循环遍历 wrapper 的子节点并使用该 foo.
当我通过普通的 javascript 执行此操作时
document.getElementById('wrapper').childNodes[x].foo
效果如我所料
然而
$('#wrapper').each(function (i, element){
console.log(element.foo); //foo here is undefined
})
导致一堆未定义的
所以...我猜 jQuery 实际上是在处理我的 div 的一些内部包装,而不是直接处理 div。我很好奇如何(或者如果可能的话)我可以访问这个循环中的实际 div 以便访问我的自定义 foo。
编辑 根据您迄今为止的所有回答(非常感谢您的时间),我觉得我需要澄清一下,因为每个人似乎都错过了我的实际问题...... 我已将上面的代码修改为更明确。
我没有语法错误(在我的实际代码中)。 jQuery 正确循环通过包装子级,它只是不返回实际子级(div),而是返回它们自己的版本,并且这个自定义版本不包含我附加的 foo。
所以,我需要的是能够返回到实际的 dom 对象,而不是围绕它的 jQuery 包装器。这可能吗?
【问题讨论】:
-
$('#wrapper')是正确的选择器。#表示id。 jQuery 使用sizzle作为它的选择器,它只是利用了css standards。您将在 jQuery 中使用与 CSS 中相同的选择器(大部分情况下)。 -
我不确定您的其余代码是否有效,但 CSS 选择器应该是
#wrapper -
使用
$('#wrapper').children().each( -
getChildById?你的意思是 document.getElementById... 也试试 element.attr("foo");
标签: javascript jquery html