document.querySelector(" .class h1")

时间:2015-03-12 02:13:13

标签: javascript html css

我正在我的学校网页上工作,我试图在一个div中选择所有标题元素,并使用一个名为" text"使用querySelector(String)函数 - 然后更改标题背景,边框和文本颜色,但以下代码似乎无法正常工作

var test = "content.html #test"
$(document).ready(function()
{
    $.ajax(
    {
        success : function(data)
        {                   
            $("#content").load(test); //this works - loads <div id="test"> and all elements within it from content.html
            document.querySelector(".content").style.backgroundColor = "#CCFFCC"; //this works - exists inside main html file ( $(document) )
            document.querySelector(".text h1").style.backgroundColor = "#CCFFCC"; //this doesn't work - still loading default colour from css
            document.querySelector(".text h1").style.color = "#003300"; //this doesn't work - still loading default colour from css

//Appropriate close tags follow...
你知道我做错了吗?我是以错误的方式引用我的元素吗?或者它是否与我尝试从单独的文件动态加载此内容的事实有关?或完全不同的东西?

1 个答案:

答案 0 :(得分:0)

正如Klaster_1所暗示的那样,您需要利用load的回调功能。

$('#content').load(test, function() {
    document.querySelector(".content").style.backgroundColor =    "#CCFFCC";
    document.querySelector(".text h1").style.backgroundColor = "#CCFFCC"; 
    document.querySelector(".text h1").style.color = "#003300"; 
});

当Klaster_1说出“异步”时,他的意思是什么?操作是它与DOM的呈现不同步。换句话说,在浏览器的运行循环有机会实际将内容放在页面上之前,将运行代码样式化内容。