获取元素数组中的每个元素值

Get each element value inside elements array

我需要在元素数组中找到元素值。请注意,有许多 <a> 个元素,但在一个 <a>.

中只有一个 <span id="attendees">

如下例:

HTML:

<a id="meetingItem_{{meeting.id}}" onclick="AuthorityCheck()"> Item

      <span id="attendees" style="visibility:collapse;" >{{meeting.attendees}}</span>
</a>

Javascript:

function AuthorityCheck(){

          var items = $('*[id^="meetingItem_"]');
          for (var i = 0; i < items.length; i++){
               var people = items[i].id.indexOf("attendees"); // I need to find span value here, but get undefined.
          }
    }

它也可以与 jQuery 一起使用,但我更喜欢 Javascript。 :)

你试过了吗:

var people = document.getElementById("attendees").textContent;

?

或者跨浏览器友好:

var people = $("#attendees").text();

如果项目具有 'attendess' id,则只取该元素的值,如果您的元素是一个跨度,则可以将您的值存储在 data-attribute:

JS

 function AuthorityCheck(){
      var items = $('*[id^="meetingItem_"]');
        for (var i = 0; i < items.length; i++){
          if (items[i].id.indexOf("attendees") !== -1) {
            var people = items[i].getAttribute('data-value');
          }
        }
    }

HTML

<span id="attendees" data-value="your value">
function AuthorityCheck()
{
      var items = document.querySelectorAll('*[id^="meetingItem_"]');
      for (var i = 0; i < items.length; i++)
      {
           var people = document.getElementById("attendees").innerHTML;  
      }
}

这个解决方案完全是空洞的,没有使用 jQuery。 innerHTML 被使用是因为它在每个浏览器中返回内容。如果存在不应检索的 HTML。你应该使用 innerText 或 textContent。将行更改为:

 var people = document.getElementById("attendees").textContent || document.getElementById("attendees").innerText; 

旁注: Id 对于 完整 DOM tree 是唯一的。这意味着如果您有多个 a 元素,其中有与会者 span。由于有多个 spansid = attendees,代码将无法正常工作。您可以使用属性或 类 绕过它。

 <span data-type="attendees" style="visibility:collapse;" >{{meeting.attendees}}</span>
function AuthorityCheck()
{
      var items = document.querySelectorAll('*[id^="meetingItem_"]');
      for (var i = 0; i < items.length; i++)
      {
           var people = items[i].querySelectorAll("span[data-type='attendees']")[0].innerHTML;  
      }
}

这个怎么样

var people = [];
$('*[id^="meetingItem_"]').each(function (index) {
    people[index] = $(this).find('span#attendees').html();
});