Получить метку элемента json с его идентификатором

0

У меня есть элементы json в этой форме;

<rect style="fill: #888888; display: inline;" id="17" width="35.823246" height="35.823246" x="456.61066" y="65.9505" class="seatObj" label="A18"></rect>

Как я могу получить значение label атрибута?

Предположим, что <rect.../> помещает часть xml, то как я могу получить то же самое с помощью консольного приложения С#?

  • 0
    Вы имеете в виду атрибут label="A18" равен id="17"
  • 2
    Кажется, все, кроме JSON.
Показать ещё 1 комментарий
Теги:

3 ответа

2
Лучший ответ

Попробуй это:

var elem = document.getElementsById('17');
var label = elem.getAttribute('label');
alert(label);

Использование jQuery:

alert($('#17').attr('label'));

У вас есть 300 таких элементов:

затем попробуйте следующее:

$('rect').each(function(){
     alert($(this).attr('label'));
});

вот Демо

Другой способ сделать это, добавив атрибут класса в ваш элемент rect и выбрав их, используя этот класс. Я добавил class="sample" rect element. Проверьте этот скрипт

 $('.sample').each(function(){
     alert($(this).attr('label'));
 });

Пример XML файла.

 <?xml version="1.0" encoding="utf-8" ?>
 <Test>
      <rect style="fill: #888888; display: inline;" id="17" width="35.823246" height="35.823246" x="456.61066" y="65.9505" class="seatObj" label="A18"></rect>
      <rect style="fill: #888888; display: inline;" id="18" width="35.823246" height="35.823246" x="456.61066" y="65.9505" class="seatObj" label="A19"></rect>
 </Test>

Анализ xml с использованием консольного приложения С#:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;

namespace Sample
{
    class Program
    {
        static void Main(string[] args)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load("Url for Sample.xml");

            XmlNodeList elemList = doc.GetElementsByTagName("rect");
            for (int i = 0; i < elemList.Count; i++)
            {
                string attrVal = elemList[i].Attributes["label"].Value;
                Console.WriteLine(attrVal);
            }
            Console.ReadLine();
        }
    }
}
  • 0
    Как я могу написать это с помощью jquery?
  • 0
    alert($('#17').attr('label'));
Показать ещё 6 комментариев
0

Попробуй это:

var elem = $('#' + id)
alert(elem.attr("label"));
0

Прежде всего, label не является допустимым атрибутом DOM. Вы должны изменить его на data-label. Если вы хотите использовать какие-либо пользовательские атрибуты, вам необходимо использовать их с префиксом data-.
Кроме того, атрибут атрибута id должен быть буквой, например a17, а не 17.
Если вы рассмотрите два выше, то для доступа к этому атрибуту вы можете сделать

$('#a17').attr('data-label')

или простой javascript

document.getElementById('a17').dataSet.label

Ещё вопросы

Сообщество Overcoder
Наверх
Меню