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

从数组中获取文本

  •  0
  • Becky  · 技术社区  · 8 年前

    我有一个数组,其中有按一定顺序排列的按钮元素。

    var arr = [ $('.buttons')[0], $('.buttons')[2], $('.buttons')[1], $('.buttons')[4] ];
    

    如何获取每个按钮的文本?下面是我尝试的。

    $.each(arr, function (index, value) {
          var butText = value.text();
          //do something...
    });
    
    3 回复  |  直到 4 年前
        1
  •  3
  •   Rion Williams    8 年前

    如果要按指定的顺序检索它们,可以考虑循环遍历它们,使用 $(this) 以引用迭代中的每个元素:

    // Iterate through each element
    $.each(arr, function(){
          // Get the text (this will refer to each of your elements)
          var buttonText = $(this).text();
          // Do something here
    });
    

    完整示例

    var arr = [ $('.buttons')[0], $('.buttons')[2], $('.buttons')[1], $('.buttons')[4] ];
    $.each(arr,function(){
        alert($(this).text());
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    <button class='buttons'>A</button>
    <button class='buttons'>B</button>
    <button class='buttons'>C</button>
    <button class='buttons'>D</button>
    <button class='buttons'>E</button>
        2
  •  1
  •   Ibrahim Khan    8 年前

    您需要使用jQuery对象 $(this) 以获取按钮文本。

    var arr = [$('.buttons')[0], $('.buttons')[2], $('.buttons')[1], $('.buttons')[4]];
    
    $.each(arr, function () {
        var butText = $(this).text();
        console.log(butText)
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <button class="buttons">button 0</button>
    <button class="buttons">button 1</button>
    <button class="buttons">button 2</button>
    <button class="buttons">button 3</button>
    <button class="buttons">button 4</button>
        3
  •  1
  •   Jacob See    8 年前

    如果要将这些元素的文本提取到新数组中 $.each() 循环,您可以使用 map() .

    var arr = [ $('.buttons')[0], $('.buttons')[2], $('.buttons')[1], $('.buttons')[4] ];
    var texts = arr.map(function(a) {return a.text();});
    

    它将返回一个等价于

    [ $('.buttons')[0].text(), $('.buttons')[2].text(), $('.buttons')[1].text(), $('.buttons')[4].text() ]