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

使用jquery迭代每个DIV属性?[复制品]

  •  0
  • Joannes  · 技术社区  · 6 年前

    我正在尝试获取每个分区的rgb和index值。在控制台中,我正确地获取了所有内容(index和b 每个分区的背景色)。尝试将每个值添加到 在每一个 div 我只为每个重复最后一个值 div :蓝色十六进制和数字5。 我如何解决?

    .red {
        background-color:red; 
    }.orange {
        background-color:orange; 
    }
    .yellow {
        background-color:yellow; 
    }
    .purple {
        background-color:purple; 
    }
    .blue {
        background-color:blue; 
    }
    <div class="red"><p></p></div>
    <div class="orange"><p></p></div>
    <div class="yellow"><p></p></div>
    <div class="purple"><p></p></div>
    <div class="blue"><p></p></div>
    
    $('div').each(function(index) {
      var x = $(this).css('background-color');
      $("div p").text(index+x);
      console.log(index+x);
    });
    
    • [日志]rgb(255,0,0)ff0000
    • [日志]rgb(255,165,0)ffa500
    • [日志]rgb(255,255,0)ffff00
    • [日志]RGB(128,0,128)800080
    • [日志]RGB(0,0,255)0000FF
    2 回复  |  直到 6 年前
        1
  •  2
  •   freefaller    6 年前

    更改以下内容…

    $("div p").text(index+x);
    

    为了…

    $(this).find("p").text(index+x);
    

    目前,您正在查找所有 <div> 元素,并填充 <p> 在每一个…这就是为什么你看到的最终价值

    $('div').each(function(index) {
      var x = $(this).css('background-color');
      $(this).find("p").text(index+x);
      console.log(index+x);
    });
    .red {
        background-color:red; 
    }.orange {
        background-color:orange; 
    }
    .yellow {
        background-color:yellow; 
    }
    .purple {
        background-color:purple; 
    }
    .blue {
        background-color:blue; 
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
    <div class="red"><p></p></div>
    <div class="orange"><p></p></div>
    <div class="yellow"><p></p></div>
    <div class="purple"><p></p></div>
    <div class="blue"><p></p></div>
        2
  •  1
  •   Luay    6 年前

    基本上,您有正确的函数,但是需要使用.eq(index)来实际地在foreach函数中影响特定的索引。这类似于访问数组中的索引,例如randomarray(0)=>1。

    $('div').each(function(index) {
      var x = $(this).css('background-color');
      $("div p").eq(index).text(index+x);
      console.log(index+x);
    });
    .red {
        background-color:red; 
    }
    
    .cyan {
      background-color:cyan;
    }
    
    .green {
      background-color:green;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div class="red"><p></p></div>
    <div class="cyan"><p></p></div>
    <div class="green"><p></p></div>