是否可以使用JavaScript打开任何标记,例如div#js并在我想要的任何地方插入结束标记,如下例所示?
<div id="first"></div>
<div id="js">
<div id="second"></div>
<div id="third"></div>
</div>
<div id="fourth"></div>
答案 0 :(得分:2)
如果您从:
开头class OsgRenderer : public QQuickFramebufferObject::Renderer
{
public:
explicit OsgRenderer();
QOpenGLFramebufferObject *createFramebufferObject(const QSize &size) LC_OVERRIDE;
void synchronize(QQuickFramebufferObject* item) LC_OVERRIDE;
void render() LC_OVERRIDE;
protected:
friend class OsgWindow;
OsgItem* m_osgItem;
};
void OsgRenderer::render()
{
assert(m_osgItem);
if ( !m_osgItem->getViewer() )
return;
// Without this line the model is not displayed in the second
// and subsequent frames.
QOpenGLContext::currentContext()->functions()->glUseProgram(0);
// Ask OSG to render.
m_osgItem->getViewer()->frame(); // WARNING: non-blocking (executed in a thread of its own - in a thread-safe way).
// Reset OpenGl state for QtQuick.
m_osgItem->window()->resetOpenGLState();
}
需要得到这个结构:
<div id="first">1</div>
<div id="second">2</div>
<div id="third">3</div>
<div id="fourth">4</div>
您可以使用<div id="first">1</div>
<div id="js">
<div id="second">2</div>
<div id="third">3</div>
</div>
<div id="fourth">4</div>
。
见下面的演示:
$('#second').wrap('<div id="js"></div>').after($('#third'))
&#13;
$('#second').wrap('<div id="js"></div>').after($('#third'));
&#13;
#js {
color: blue;
}
&#13;
答案 1 :(得分:-2)
当你标记你的代码jQuery时,我会在那个意义上回答它。如果您以编程方式将div元素插入带有juery的页面,如下所示:
var bodyEl = $("body");
var myJsEl = $("<div>").attr("id", "js");
bodyEl.append(myJsEl);
...如前所述,$("<div>")
代码是document.createElement("div")
的功能等价物,它创建了代码块,同时打开和关闭DOM元素。因此,当我通过任一方法创建元素时,以编程方式说,关闭不是我可以控制的。
也就是说,在document.write()
的“糟糕的旧时代”中,我们确实可以选择硬编码开始标记并忽略包含结束标记。不要这样做!它被弃用了,它的形式很糟糕,以后可能会产生严重的编码问题。