我有一个电子邮件地址列表。它们每个都像这样跨度:<span class="checked-emails-list">email@example.com</span>
我需要获取该电子邮件地址并将其放入对象数组中。每个对象都有2个字段,电子邮件地址和一个字符串。该字符串是预设的,在这里并不重要。
我在我的javascript文件中使用each
循环来检索跨度文本,但是我做错了,因为它只是在电子邮件字段中放置了“文本”。检索跨度文本值的正确方法是什么?
var rowObject = {
Email: '',
ConfirmEmail: '',
deleted: 'no'
}
var emailSubs = [];
$('.checked-emails-list span').each(function () {
rowObject.Email = ($(this).text);
rowObject.ConfirmEmail = ($(this).text);
emailSubs.push(rowObject);
});
答案 0 :(得分:1)
$(this).text()
在jQuery中,“文本”是一种方法。您就像在使用属性。
答案 1 :(得分:0)
在普通Java语言中,我会做类似的事情
var element = document.getElementsByClassName("checked-emails-list");
var result = [];
element.forEach(function(element){
result.push(element.innerHTML);
});
答案 2 :(得分:0)
.text不起作用,它应该是text()。另一个问题是您在每个循环上都使用 rowObject 对象。它会一直作为参考,直到您重新初始化它为止。您应该在循环内重新初始化该对象
var emailSubs = [];
$('.checked-emails-list span').each(function () {
let rowObject={
Email: $(this).text(),
ConfirmEmail:$(this).text(),
deleted: 'no'
}
emailSubs.push(rowObject);
});
console.log(emailSubs);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='checked-emails-list'>
<span>a</span>
<span>b</span>
<span>c</span>
<span>d</span>
</div>
答案 3 :(得分:0)
$(document).ready(function(){
var emailSubs = [];
$('.checked-emails-list').each(function () {
var obj = this
emailSubs.push({
Email: $(this).text(),
ConfirmEmail:$(this).text(),
deleted: 'no'
});
});
console.log(emailSubs.length)
})
<span class="checked-emails-list">email111@example.com</span><br/>
<span class="checked-emails-list">email2222@example.com</span><br/>
<span class="checked-emails-list">email3333@example.com</span><br/>