可以使用.append()但不能使用.style的元素

时间:2014-01-28 19:46:09

标签: javascript jquery html css reference

我正在存储对我创建的对象的引用,并且在我上面调用.append()工作正常,但如果我尝试进行样式更改它将不允许我...

我得到的错误是

  

未捕获的TypeError:无法设置未定义的属性“display”

有什么想法吗?

//add this slide's wrapper to module
self.node = $("<div id='module_"+self.moduleId+"-slide_"+self.currentSlide+"' class='slide fade'></div>").appendTo("div#module_"+self.moduleId);

//add the contents of the slide to its wrapper div
self.node.append( self.slides[self.currentSlide-1].html )

//Hack to force webKit to repaint (to have style fade applied) before the show() event.
self.node.style.display='none';

2 个答案:

答案 0 :(得分:1)

你可能想这样做:

    self.node = $("<div id='module_"+self.moduleId+"-slide_"+self.currentSlide+"' class='slide fade'></div>").appendTo("div#module_"+self.moduleId);

    self.node.append( self.slides[self.currentSlide-1].html );
    self.node.hide();
    //or
    self.node.css("display", "none");

答案 1 :(得分:1)

这一行为您提供了对jQuery对象的引用:

self.node = $("<div id='module_"+self.moduleId+"-slide_"+self.currentSlide+"' class='slide fade'></div>").appendTo("div#module_"+self.moduleId);

您正在引用jQuery对象,当它看起来像need the actual DOM element时,可通过

访问
self.node[0]

所以你的代码会读到:

self.node[0].style.display='none';