从每个创建列表

时间:2018-09-24 10:50:20

标签: javascript jquery html

我正在使用jQuery这样遍历元素:

<div class="row" id="TableDiv" style="display: none;">
</div>

这正常工作,并且在控制台日志中看到了它找到的每个元素。我现在正在尝试获取包含每个看起来像这样的元素的字符串:

$(".myelement").each(function() {
  $element = $(this).closest(".panel").attr("id");
  console.log($element);
});

最简单的方法是什么?有人能给我指出一个例子吗?

3 个答案:

答案 0 :(得分:2)

您可以使用map()来构建id然后是join()的数组,就像这样:

var ids = $(".myelement").map(function() {
  return '#' + $(this).closest(".panel").prop("id");
}).get().join(', ');

console.log(ids);

答案 1 :(得分:2)

您可以使用数组来存储它们,方法是在每次迭代中添加#,然后在循环结束后使用join()方法将它们加入:

var ids = [];

$(".myelement").each(function() {
  ids.push('#' + $(this).closest(".panel").attr("id"));
});

console.log(ids.join(', '));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="element1" class="panel">
  <span class="myelement">My element 1</span>
</div>
<div id="element2" class="panel">
  <span class="myelement">My element 2</span>
</div>
<div id="element3" class="panel">
  <span class="myelement">My element 3</span>
</div>

答案 2 :(得分:2)

尝试使用map()

  

.map()方法对于获取或设置元素集合的值特别有用。

     

由于返回值是一个包含数组的jQuery对象,因此在结果上调用.get()以使用基本数组是很常见的。

您可以使用map()get()join() 通过以下方式:

var $element = $(".myelement").map(function(){
  return $(this).closest(".panel").attr("id"); 
}).get().join(', ');
console.log($element);