Jquery Ajax在内容中被忽略,而没有获取样式表?

Jquery Ajax在内容中被忽略,而没有获取样式表?,jquery,html,css,ajax,stylesheet,Jquery,Html,Css,Ajax,Stylesheet,我附上了两页并排的截图。在左侧,右上角的表单元素作为整个页面的一部分被加载,并且完全使用twitter引导的样式来设置grey well、表单内联等的样式 在右侧,表单通过ajax调用加载,代码为: function load(element, id){ $.get("/lazyLoads/" + id, function(data){ $(element).replaceWith($(data.childNodes)) }) } 您可以看到表单并没有获得大多数

我附上了两页并排的截图。在左侧,右上角的表单元素作为整个页面的一部分被加载,并且完全使用twitter引导的样式来设置grey well、表单内联等的样式

在右侧,表单通过ajax调用加载,代码为:

function load(element, id){
    $.get("/lazyLoads/" + id, function(data){
        $(element).replaceWith($(data.childNodes))
    })
}
您可以看到表单并没有获得大多数引导的样式。除了看起来像狗的呕吐物之外,在Inspect元素中,您可以清楚地看到它与Bootstrap的大多数css规则不匹配

大多数?是的,大多数,但不是全部:它似乎与Bootstrap的表单样式相匹配,但它似乎没有选择.forminline或.well样式!页面非常基本,HTML几乎都在那里供您查看。此外,我无法将光标放在文本框中开始在Ajaxed页面上键入内容

除了这种CSS奇怪之外,唯一的区别是Ajaxed页面删除了它的标记,正如Jquery插入所期望的那样

这对我来说很神秘。在Chrome和Firefox中测试,行为相同。还使用insertBefore、before、insertAfter、after测试,所有这些测试都给出了相同的行为。有人知道这是什么原因吗

编辑:仍然无法让演示正常运行尝试部署Play 2.0应用程序并非小事,但这里有另一个症状:


如果,在右侧页面上没有“检查元素”窗格中的样式,我右键单击。。。标记并选择[Edit as HTML],不做任何更改,然后离开编辑模式,样式立即出现,并且突然看起来像左边的表单!很明显,HTML很好。

如果元素具有内联样式定义,则有时不会应用CSS。 您可以通过添加以下内容来提高CSS定义的优先级!对你的定义很重要

例如:

另外,在您的代码中,我不确定是否误解了函数名replaceWith

function load(element, id){
    $.get("/lazyLoads/" + id, function(data){
        $(element).replaceWith($(data.childNodes))
    })
}
相反,请尝试使用以下代码:

function load(element, id){
    $.get("/lazyLoads/" + id, function(data){
        $(element).html($(data.childNodes));
       //$(element).append($(data.childNodes));
    })
}

为什么在所有类属性中都有一个额外的空格?如果你说的是简单的CSS规则,那么一旦对象在页面中呈现,它们就会自动应用于所有内容。他们不应用的唯一原因是缺少ID或类名,这使得CSS规则不适用。我以前也见过这样的情况,在对象的类名中有一个句号,或者在更高级别的类中有一个轻微的拼写错误。如果没有实际的内容让我们看,我们就无能为力了。你能把演示放上去让我们也测试一下吗?如果你注意到表单被正确地应用到了第二张图片上,那么这就不是css的问题了。还有一些其他的东西,所以请展示一个演示。另一个猜测可能是,您认为类名之间的空格并不是真正的空格。
function load(element, id){
    $.get("/lazyLoads/" + id, function(data){
        $(element).html($(data.childNodes));
       //$(element).append($(data.childNodes));
    })
}