我正在使用jQuery这样遍历元素:
<div class="row" id="TableDiv" style="display: none;">
</div>
这正常工作,并且在控制台日志中看到了它找到的每个元素。我现在正在尝试获取包含每个看起来像这样的元素的字符串:
$(".myelement").each(function() {
$element = $(this).closest(".panel").attr("id");
console.log($element);
});
最简单的方法是什么?有人能给我指出一个例子吗?
答案 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);