как получить конкретное значение из внешнего HTML

0

Я пытаюсь получить некоторые специальные атрибуты из externalHTML, который является строкой, которую я имею в одной из моих функций.

Вот HTML:

<div data-role="touch" style="width:100%;overflow:hidden;" data-enable-swipe="true" data-swipe="relayControler.OnSwipeFavoris"> (relayControler.js, line 65)
<div class="divGaucheFavRelais" style="float:left;width:80%;">
<a style="border:none;-webkit-tap-highlight-color:none;width:95%;" data-role="button" data-click="relayControler.DetailsRelais" data-id-relais="39403" data-code-pays-relais="FR" class="km-widget km-button km-state-active">
  <span class="PointRelaisImage km-text" style="background-image: url(http://www.mondialrelay.com/img/dynamique/pr.aspx?id=FR039403); margin-top:8px;"></span>              
  <div class="PR-Name">
    CORDONNERIE GAMBETTA
  </div>
  <div class="PR-Adress"> 64 RUE LITTRE 
  </div>
  <div class="PR-Adress" style="margin-left:53px"> 59000 - LILLE - FR
  </div>
</a>
</div>
<div class="buttonUndoFavoris" style="width:100%;height:50px;background-color:grey;display:none;">
<div class="textRelaisSupprime" style="float:left">
  <p> Favori <sup></sup>supprime</p>
</div>
<div class="imageRelaisSupprime" style="float:right">
  <a class="button km-widget km-button" data-role="button" style="border:none;top:3px;"><span class="km-text"><img src="./img/undo.png" id="icoUndoFavoriSup" class="km-image"></span></a>
</div>
</div>
</div>

Мы здесь...

Атрибуты, которые меня интересуют, находятся в div "divGaucheFavRelais" на балке. Это data-id-relais и data-code-pays-relais, я пробовал некоторые вещи в JQuery, но я просто не могу их получить, всегда получая неопределенную ошибку, когда я ее печатаю.

Вот что я пробовал:

alert($(e.sender.element[0].outerHTML).data('id-relais'));

HTML-код, который вы видите, генерируется шаблоном, поэтому я не могу получить их другим способом, я думаю...

Если кто-то может помочь... большое вам спасибо :)

РЕДАКТИРОВАТЬ:

Я нашел, как получить информацию, в которой я нуждался, но я не уверен, что это правильный путь... Мне кажется, немного взломано для меня...

e.sender.element[0].firstElementChild.childNodes[1].attributes.item(3).value;
e.sender.element[0].firstElementChild.childNodes[1].attributes.item(4).value;

Если кто-то скажет мне, является ли это решение только одним из тех, что вам нужно забыть...

еще раз спасибо тем, кого вы пытаетесь время помочь мне;)

  • 0
    outerHTML вернет вам строку для этого элемента. Это будет указывать на тот же элемент. Предоставьте больше информации о том, что вам нужно сделать. Между тем, я думаю, вы выглядите примерно так: $(this).data('id-relais') .
  • 0
    html-код - это содержимое каждого элемента в виде списка (предоставляемое пользовательским интерфейсом kendo), что означает, что у меня будет несколько раз один и тот же код, но с разными данными в data-id-relayis и data-code-pays. Вот почему мне нужно передать параметр e, который принимает моя функция. возможно есть другой способ справиться с этим, но externalHTML - единственное место, где я могу найти значения моих атрибутов
Показать ещё 5 комментариев
Теги:

4 ответа

0

Текст OuterHTML:

<input id ="UserControl" value ="New Custmer" defaultvalue="Cust415875" clientcontrolname = "CusterInfo">

Geting clientcontrolname (атрибут) value from outerHTML:

var strGrpAssoc = oGrpAssoc.outerHTML + "</input>";
    var xmlGrpAssoc = loadXMLString(strGrpAssoc.toLowerCase());
    var sClientControlName = xmlGrpAssoc.getElementsByTagName("input")[0].getAttribute("clientcontrolname"); 

    function loadXMLString(txt) {
        if (window.DOMParser) {
            parser = new DOMParser();
            xmlDoc = parser.parseFromString(txt, "text/xml");
        }
        else // code for IE
        {
            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async = false;
            xmlDoc.loadXML(txt);
        }
        return xmlDoc;
    } 
0

Вот хороший способ сделать это, я думаю:

    var div = e.sender.element[0];
    var bouton = $(".boutonListeFavoris",div);
    var idRelais = bouton.attr("data-id-relais");
    var codePays = bouton.attr("data-code-Pays-relais");
0

Вы пробовали использовать обход

Если я правильно расстаюсь, это должно быть полезно

$(e.sender).parents('div>a').data('id-relais'));
  • 0
    получил ноль в качестве возвращаемого значения ..
  • 0
    parent() - это метод jquery, а не parent() parents() . Исправь это.
Показать ещё 1 комментарий
0

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

alert($('.divGaucheFavRelais a').data('id-relais'));

Я бы предпочел добавить тег ID в тег, подобный этому

<a href="#" id="myId" data-value="12345"></a>

и после вызова

alert($('#myId').data('value'));
  • 0
    не могу ... как я уже сказал, это представление списка, если я сделаю это по-своему, будет несколько элементов с одинаковым идентификатором, этот путь будет правильным, если у меня есть только один элемент в списке
  • 0
    добавьте значение вашего цикла к идентификатору.
Показать ещё 1 комментарий

Ещё вопросы

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