访问具有复杂类名的div

时间:2015-06-08 18:53:10

标签: javascript jquery css

在下面的代码中,我标记了<div>“LINE BELOW”。我需要设置css后台属性,但无论我如何尝试jQuery或JavaScript中的语法,它似乎永远不会识别出来!为什么它不接受我的CSS定义?

作为奖励向我解释如何覆盖其中包含!important的现有背景属性。

这是我在目标网站上的大致方案:

<div id="main-content">
    <div id="detailblock">
        <div class="tabsblock">
            <section class="editblock">
                <form id="target">
                    <div class="editblock-item">
                        <div class="input textarea">
                            <div class="editor_box">
                                //LINE BELOW:
                                <div class="editor_ editor_text">
                                    //Something inside of div...
                                </div>
                            </div>
                        </div>
                    </div>
                </form>
            </section>
        </div>
    </div>
</div>

我试过这个并且在研究期间发现它并没有起作用:

jQuery(".editor_.editor_text").css("background","#000 none repeat scroll 0% 0%");

我做错了什么?

更新

我刚刚使用css()测试并着色了蓝色的所有div。他们都工作,除了特定的一个。但是如果我使用remove()删除所有div,它将被删除所有div。但是如果我使用它的选择器删除那个特定的div,它就不会被删除!

2 个答案:

答案 0 :(得分:1)

你并没有真正选择具有复杂类名的<div>;您正在尝试选择分配了两个类名的<div>。您的jQuery选择器不必包含这两个类名;要么会这样做,不过你当然可以指定两者。 $("div.editor_")是否选择了要更改的元素?是$("div.editor_text")吗?

一旦找到了正确的选择器,就可以在所选元素上调用jQuery的.css方法:

$(...).css("background", "blue");

或者你可以直接编辑所选元素的样式属性(如,不是通过jQuery)。如果您试图覆盖CSS !important指令,我相信这是您必须使用的方法:

$(...)[0].style.setProperty("background", "blue", "important");

(这是有效的,因为现在两个CSS规则被标记为同等重要!应用程序的顺序决定了你设置的那个规则将胜出。)

答案 1 :(得分:0)

你有一个拼写错误,两个编辑器之间有一个额外的空格:

<div class="editor_ editor_text">

在没有这个小提琴的额外空间的情况下工作正常:http://jsfiddle.net/yutzjbjr/

修改

我现在看到涉及两个类。您应该在问题中包含您的jquery

但是仍然适用于两个类:http://jsfiddle.net/yutzjbjr/1/

你可以阅读控制台吗?