获取元素数组中的每个元素值
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
。由于有多个 spans
和 id
= 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();
});
我需要在元素数组中找到元素值。请注意,有许多 <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
。由于有多个 spans
和 id
= 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();
});