0

我正在尝试从 outerHTML 中获取一些特定属性,这是我在我的一个函数中拥有的字符串。

这是 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 代码是由模板生成的,这就是为什么我无法以另一种方式获取它们的原因...

如果有人可以帮助...非常感谢你:)

编辑 :

我找到了如何获取我需要的信息,但我完全不确定这是正确的方法......对我来说似乎有点 hacky......

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

如果有人可以告诉我这个解决方案是否只是您必须忘记的解决方案之一......

再次感谢那些你工具时间试图帮助我的人;)

4

4 回答 4

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");
于 2014-03-13T15:39:10.400 回答
0

外部HTML文本:

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

从 outerHTML 获取 clientcontrolname(属性)值:

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;
    } 
于 2015-03-06T12:12:32.587 回答
0

尝试这个 :

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

我更愿意像这样向 A 标签添加一个 ID

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

并在通话后

alert($('#myId').data('value'));
于 2014-03-13T14:01:01.970 回答
0

您是否尝试过使用遍历

如果我理解正确,它应该会有所帮助

$(e.sender).parents('div>a').data('id-relais'));
于 2014-03-13T14:02:28.217 回答