@viktorulyushev

Как получить значение data-атрибута?

Есть такая строка:
<span class="vertical-interval-xsmall form-field-input" data-ng-bind="bonusInfo.bonusData.CardNumber"></span>

В data-ng-bind хранится значение,как его получить и вывести?
  • Вопрос задан
  • 776 просмотров
Решения вопроса 1
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
Это смотря где вы его хотите получить.
Судя по названию атрибута - это у вас AngularJS, поэтому где-то должен быть контроллер, для которого этот кусок html является шаблоном. Поискать можно по скриптам по строке $scope.bonusInfo
Если вам в jquery надо получить - то там есть метод .data();
Работает так:
$(element).data('ng-bind');
А уж как выводить - тут зависит от того, куда вы его вывести хотите.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
devspec
@devspec
Помогло? Отметь решением
ewgenio
@ewgenio
Всё по чуть чуть
var data = $("span").data();
alert(data.ngBind);
// или
alert($("span").data('ngBind'););


https://api.jquery.com/data/
Ответ написан
Комментировать
alexsandr0000
@alexsandr0000
Программист C#/C++/C
Для ООП думаю надо будет создавать класс описывающий xml структуру (описание), конкретно для данного фрагмента этот класс будет выглядеть так:
using System.Collections.Generic;
using System.ComponentModel;
using System.Runtime.Serialization;
using System.Xml.Serialization;

[DataContract(Name = "span")]
public class Span
{
	/// <summary>
    /// 
    /// </summary>
    [XmlAttribute("class")]
    public string VerticalInterval { get; set; }
	
    /// <summary>
    /// 
    /// </summary>
    [XmlAttribute("data-ng-bind")]
    public string DataNgBind{ get; set; }
}

Для серелизации и десерилизации Span можно использовать следующий класс:
namespace Common
{
    using System.IO;
    using System.Xml.Serialization;

    public static class Serialization
    {
        public static string SerializeToString(this object obj)
        {
            var xmlSerializer = new XmlSerializer(obj.GetType());
            var stringWriter = new StringWriter();
            xmlSerializer.Serialize(stringWriter, obj);
            return stringWriter.ToString();
        }

        public static T DeserializeString<T>(this string sourceString)
        {
            var xmlSerializer = new XmlSerializer(typeof(T));
            var stringReader = new StringReader(sourceString);
            return (T)xmlSerializer.Deserialize(stringReader);
        }
    }
}

или можно так:
var _span = new Span();
_span.VerticalInterval = "vertical-interval-xsmall form-field-input";
_span.DataNgBind = "bonusInfo.bonusData.CardNumber";

// передаем в конструктор тип класса
XmlSerializer formatter = new XmlSerializer(_span.GetType());
using (FileStream fs = new FileStream("model.xml", FileMode.OpenOrCreate))
{
	formatter.Serialize(fs, _span);
	Console.WriteLine("Объект сериализован");
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы