嗯,我认为这将是一个简单的问题,但我无法意识到Jquery如何失去/无法找到该元素的属性:
使用Javascript:
for (var i=0; i<=10; i++)
{
Cells[i]=document.createElement('div');
Cells[i].id = "Cell"+String(i);
Cells[i].className = "CellClass";
if (i==0)//Let's look the fist one (neverminds which one).
{
alert(Cells[0].className);//This would alert: "CellClass" (without quotes).
alert($("#Cell0").className);//This would alert: "undefined" (without quotes).
//Another way:
alert($(Cells[0]).className);//This would alert: "undefined" (without quotes).
}
}
对于这个问题,类.CellClass本身并不相关,永远不知道哪些属性定义。
我不理解什么?
答案 0 :(得分:6)
$(Cells[0])
返回一个jQuery包装器对象而不是dom元素引用,因此它没有像className
这样的属性。
您可以使用以下任何一种方法
Cells[0].className
$(Cells[0]).prop('className')
$(Cells[0]).attr('class')
还要确保在执行jQuery选择器$("#Cell0")
之前将元素添加到dom结构否则将无法在dom查找中找到该元素
答案 1 :(得分:3)
尽管Arun回答了关于jQuery对象和DOM对象之间的区别,但您还会发现$("#Cell0")
实际上不会有效,直到#Cell0
实际放入DOM中,添加它到父节点。
答案 2 :(得分:0)
alert($("#Cell0").attr('class'));
会工作