我的功能如下
var resultObject = {
testResult: $('.test').map(function() {
return {name: $(this).text(), no:'1'};
}).get()
};
console.log(resultObject);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="test">test1</div>
<div class="test">test2</div>
<div class="test">test3</div>
<div class="test2">1</div>
<div class="test2">2</div>
<div class="test2">3</div>http://stackoverflow.com/questions/ask#
&#13;
该字段&#34; no&#34;应该根据class="test2"
,但它似乎不能像.map()中的.map()那样做
大更新!!
我看到下面有这么多答案,大多数都可以解决问题,我也找到了解决问题的方法。
请让我分享一下,看看还有什么我会改进的。
var test1= "";
$(".test" ).each(function( index ) {
test1 = $(this).text();
});
var test2= $('.test2').map(function() {
return {name: $(this).text(), no:test1};
}).get()
var sovCategories = test2;
答案 0 :(得分:1)
您不需要第二个循环。您可以使用.eq()
按相同索引选择元素。
var resultObject = {
testResult: $('.test').map(function(i) {
return {
name: $(this).text(),
no: $('.test2').eq(i).text(),
};
}).get()
};
console.log(resultObject);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="test">test1</div>
<div class="test">test2</div>
<div class="test">test3</div>
<div class="test2">1</div>
<div class="test2">2</div>
<div class="test2">3</div>
只是因为我玩得开心,箭头功能也有点短版! ;)
var resultObject = {
testResult: $('.test').map((i, e) => ({
name: $(e).text(),
no: $('.test2').eq(i).text()
})).get()
};
console.log(resultObject);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="test">test1</div>
<div class="test">test2</div>
<div class="test">test3</div>
<div class="test2">1</div>
<div class="test2">2</div>
<div class="test2">3</div>
答案 1 :(得分:1)
您可以使用下面的迭代次数来查找div,但这可能不是最好的事情。请参见下面的摘录..
var resultObject = {
testResult: $('.test').map(function(i) {
return {name: $(this).text(), no: $('.test2').eq(i).text()};
}).get()
};
console.log(resultObject);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="test">test1</div>
<div class="test">test2</div>
<div class="test">test3</div>
<div class="test2">1</div>
<div class="test2">2</div>
<div class="test2">3</div>http://stackoverflow.com/questions/ask#
不要执行上述操作,而是更好地更改html并使用data-attributes
。
<div class="test" data-no="1">test1</div>
<div class="test" data-no="2">test2</div>
<div class="test" data-no="3">test3</div>
这样做,您将能够更轻松地提取数据:
var resultObject = {
testResult: $('.test').map(function(i) {
return {name: $(this).text(), no: $(this).data("no")};
}).get()
};
console.log(resultObject);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="test" data-no="1">test1</div>
<div class="test" data-no="2">test2</div>
<div class="test" data-no="3">test3</div>
<div class="test2">1</div>
<div class="test2">2</div>
<div class="test2">3</div>http://stackoverflow.com/questions/ask#