代码之家  ›  专栏  ›  技术社区  ›  Derek Adair

函数通过javascript删除元素及其所有子元素的背景图像

  •  1
  • Derek Adair  · 技术社区  · 14 年前

    我想删除给定元素的所有CSS背景图像,并 全部的 它的子级和javascript。这个问题有点像是衍生产品 another question 我问。最终的目标是相同的,以皮肤jquery ui小部件。

    我正在使用 jquery / jquery-ui 如果有人用这些来解决问题的话。

    有什么想法吗?

    奖金:

    能够为不同的jquery用户界面状态删除背景图像是非常好的,但是我几乎已经下定决心要通过css覆盖这些bg图像。

    前任: 用户界面状态悬停,用户界面状态活动都有与其关联的背景图像。

    请告诉我,如果您认为任何类型的编程风格重写不应该这样做(请提供您的理由)。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Thomas F.    14 年前
    function removeChildBackgrounds(parent) {
      parent.style.backgroundImage = "none";
      var childNodes = parent.childNodes;
      for(var i=0;i<childNodes.length;i++) {
        removeChildBackgrounds(childNodes[i]);
      }
    }
    

        2
  •  2
  •   Harmen    14 年前

    // You might now need the !important, but it overrules other !important's
    $( '*', givenElement ).css( 'backgroundImage', '0 !important' );
    

    // Javascript
    $( givenElement ).addClass( 'stateX' );
    
    // CSS, basic example to give you an idea
    .stateX div, .stateX span {
        background-image: 0;
    }
    
    .stateY div, .stateY span {
        background-image: url( someimage.png );
    }