【问题标题】:How do I get text from each span with a specific class tag?如何从具有特定类标签的每个跨度中获取文本?
【发布时间】:2018-09-28 13:38:11
【问题描述】:

我有一个电子邮件地址列表。它们中的每一个都在这样的范围内:<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);
});

【问题讨论】:

  • .text.text()?

标签: javascript jquery html tags


【解决方案1】:

$(this).text() 在 jQuery 中,'text' 是一种方法。您正在像使用属性一样使用。

【讨论】:

  • .text 缺失 ()。应该是 .text() rowObject.Email = $(this).text(); rowObject.ConfirmEmail = $(this).text();
【解决方案2】:

在纯 Javascript 中我会做这样的事情

var element = document.getElementsByClassName("checked-emails-list");
var result = [];
element.forEach(function(element){
  result.push(element.innerHTML);
});

【讨论】:

    【解决方案3】:

    .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>

    【讨论】:

      【解决方案4】:
      $(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/>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多