Я пытаюсь получить некоторые специальные атрибуты из 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;
Если кто-то скажет мне, является ли это решение только одним из тех, что вам нужно забыть...
еще раз спасибо тем, кого вы пытаетесь время помочь мне;)
Текст 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;
}
Вот хороший способ сделать это, я думаю:
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");
Вы пробовали использовать обход
Если я правильно расстаюсь, это должно быть полезно
$(e.sender).parents('div>a').data('id-relais'));
parent()
- это метод jquery, а не parent()
parents()
. Исправь это.
попробуй это:
alert($('.divGaucheFavRelais a').data('id-relais'));
Я бы предпочел добавить тег ID в тег, подобный этому
<a href="#" id="myId" data-value="12345"></a>
и после вызова
alert($('#myId').data('value'));
outerHTML
вернет вам строку для этого элемента. Это будет указывать на тот же элемент. Предоставьте больше информации о том, что вам нужно сделать. Между тем, я думаю, вы выглядите примерно так:$(this).data('id-relais')
.