如何从每个跨度中获取带有特定类别标签的文本?

时间:2018-09-28 13:38:11

标签: javascript jquery html tags

我有一个电子邮件地址列表。它们每个都像这样跨度:<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);
});

4 个答案:

答案 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/>