代码之家  ›  专栏  ›  技术社区  ›  Anant

如何在innerHTML上执行操作

  •  2
  • Anant  · 技术社区  · 7 年前

    var myContainer = $(body).find('.any-class');
    

    现在这个变量是一个对象,它包含了它各自元素中的所有数据。它有自己的方法(比如 myContainer.attr('anyAttr') myContainer.getAttribute('anyAttr') 现在就可以了)。

    我的问题是 myContainer.innerHTML ,则我无法执行类似的操作- .find() . 我需要这个,因为我需要找到类和ID中 innerHTML

    这个流很重要,因为我在每个类中循环。这是我的密码:

    var myContainer = $(body).find('.any-class');
    $.each(myContainer, function(key, value) {
        if (value.getAttribute('is_required')) {
            //value.innerHTML.find('.anyOtherClass'); find doesn't work. What should be done?
        }
    }
    
    3 回复  |  直到 7 年前
        1
  •  2
  •   Mamun    7 年前

    因为 innerHTML 是字符串,不能实现 find() 在那上面。你可以简单地使用 value 作为jQuery对象 $(value).find() .

    请注意:您必须附上 body 带引号。

    var myContainer = $('body').find('.any-class');
    $.each(myContainer, function(key, value) {
      if (value.getAttribute('is_required')) {
        console.log(typeof(value.innerHTML)); //string
        console.log($(value).find('.anyOtherClass')[0]);
      }
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="any-class" is_required="yes">
      <span>Container 1</span>
      <span class="anyOtherClass">Container 2</span>
    </div>
        2
  •  0
  •   Hero Wanders    7 年前

    只要省略 .innerHTML 并用jQuery包装元素,如果 value

    $(value).find('#anyId')....
    

    请注意返回类型以及您调用的函数和获得的属性的确切含义。打电话 find $(body) http://api.jquery.com/attr/ .

    在您的示例中,您突然切换到另一个变量 optionContainers ,好的,忽略前一行,现在用 each 可选容器 是一个jQuery列表,它确实检索domhtml元素。 要使用jQuery方法,必须用jQuery包装这些元素。

        3
  •  0
  •   Kali    7 年前

    如果必须对属性为“required”的所有元素执行操作,则可以尝试

    document.querySelectorAll('[attributeName="attributeValue"]');
    

    如果选择了所有需要的选项,您可以使用下面的

    document.querySelectorAll("[required]");
    

    您可以将代码更改为:

    var selectedElements = value.querySelectorAll("required");
    

    现在可以使用forEach或for循环遍历所选元素

    https://developer.mozilla.org/en-US/docs/Web/API/Element/querySelectorAll