使用javascript引用当前节点?

使用javascript引用当前节点?,javascript,Javascript,因此,我正在重新设计一个带有无用CMS的站点,我没有对标记的完全访问权或ftp访问权。特别是有一个节点严重阻碍了我的进度——它是以内联方式编写的&没有类或ID,我必须更改它,而不是删除它。它看起来像: <div style="background-color: blue"> <div class="editablecontent"> (stuff I can edit in the CMS goes here) </div> </div> 我认为

因此,我正在重新设计一个带有无用CMS的站点,我没有对标记的完全访问权或ftp访问权。特别是有一个节点严重阻碍了我的进度——它是以内联方式编写的&没有类或ID,我必须更改它,而不是删除它。它看起来像:

<div style="background-color: blue">
<div class="editablecontent">
(stuff I can edit in the CMS goes here)
</div>
</div>
我认为getElementsByClassName在这里不起作用?但是定义一个带有ID的空div和document.getElementById.parentNode.parentNode.style.backgroundColor=white显然是肮脏的,在IE中无论如何都不起作用,我至少需要IE8支持,这是一种什么样的工作方式呢。我没有使用框架,但可以访问标题


提前感谢。

假设此内容在您的文档中是唯一的(例如,只有一个),您可以使用此内容查找:

function changeColor() {
    var divs = document.getElementsByTagName("div");
    for (var i = 0, len = divs.length; i < len; i++) {
        if (divs[i].style.backgroundColor === "blue" && 
          divs[i + 1] && 
          divs[i + 1].parentNode === divs[i] &&
          divs[i + 1].className === "editablecontent") {
            divs[i].style.backgroundColor = "white";
            return;
        }
    }
}
然后,您可以简单地执行此操作,即使在旧版本的IE上:

var items = document.getElementsByClassName("editablecontent");
if (items.length) {
    items[0].parentNode.style.backgroundColor = "white";
}

假设此内容在您的文档中是唯一的(例如,只有一个),您可以使用此内容来查找它:

function changeColor() {
    var divs = document.getElementsByTagName("div");
    for (var i = 0, len = divs.length; i < len; i++) {
        if (divs[i].style.backgroundColor === "blue" && 
          divs[i + 1] && 
          divs[i + 1].parentNode === divs[i] &&
          divs[i + 1].className === "editablecontent") {
            divs[i].style.backgroundColor = "white";
            return;
        }
    }
}
然后,您可以简单地执行此操作,即使在旧版本的IE上:

var items = document.getElementsByClassName("editablecontent");
if (items.length) {
    items[0].parentNode.style.backgroundColor = "white";
}

最好的方法可能是使用jQuery。你能把它变成一个ID而不是一个类吗?你如何更新它?你能在它旁边添加一个ID吗?假设你真的包含了一个ID,为什么document.getElementByIdx.parentNode.parentNode.style.backgroundColor=white在IE中不起作用?也许你可以选择附近的某个东西,然后使用选择器从那里开始工作?如果CMS使用jQuery,它可能希望使用哪个?是吗?最好的方法可能是使用jQuery。你能把它变成一个ID而不是一个类吗?你如何更新它?你能在它旁边添加一个ID吗?假设你真的包含了一个ID,为什么document.getElementByIdx.parentNode.parentNode.style.backgroundColor=white在IE中不起作用?也许你可以选择附近的某个东西,然后使用选择器从那里开始工作?如果CMS使用jQuery,它可能希望使用哪个?做