【问题标题】:How to get span text inside onclick popup - jquery如何在onclick弹出窗口中获取跨度文本 - jquery
【发布时间】:2018-09-27 19:18:08
【问题描述】:

我有一个问题:

<span class="item-link item-caption" id="qitem_6093500" onclick="return overlib('    <table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;><tr><td style=&quot;vertical-align: top;&quot;><table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; class=&quot;itemImagesContainer&quot;><tr><td colspan=&quot;2&quot;><div class=&quot;itemMainImageContainer&quot; style=&quot;background: url(\'gfx/gothic/items/krotkilukdmt8.jpg\') no-repeat left;&quot;></div></td></tr></table></td><td class=&quot;item-desc itemDescContainer&quot;><div><b><i>Broń dystansowa dwuręczna (lekka)</i></b></div><div class=&quot;itemdesc-s&quot;><b>Obrażenia: <span class=incstat>27</span> - <span class=incstat>33</span></b></div><div class=&quot;itemdesc-s itemEffectsList&quot;>trafienie <b>+5</b><br />ilość ataków na rundę: <b>3</b></div><div class=&quot;itemdesc-s&quot;><b>Wymagania:</b> POZIOM: 2 (4), WIEDZA: 6 (12)</div><div class=&quot;itemdesc-s&quot;><div><b>Cena sprzedaży:</b> <span >900 PLN</span></div></div><div class=&quot;itemDescDetailsContainer&quot;><div class=&quot;itemDescDetailsLink&quot;><a href=&quot;test_items.php?class=1&amp;baseType=68&amp;prefix=0&amp;sufix=0&amp;legendary=0&amp;playerLvl=128&quot; target=&quot;_blank&quot;><img src=&quot;gfx/lhx/msg1.gif&quot;/></a></div><div class=&quot;itemDescDetailsLink&quot;><a href=&quot;?a=auction&amp;do=closed&amp;itemType=0&amp;itemClass=1&amp;prefix=0&amp;suffix=0&amp;legend=0&amp;withoff=0&amp;onlyMine=0&amp;t=10&amp;tab=99&quot;><img src=&quot;gfx/aumakebid.gif&quot;/></a></div></div></td></tr></table>',CAPTIONFONTCLASS,'item-caption item-caption2',CLOSEFONTCLASS,'item-close',TEXTFONTCLASS,'item-desc',STICKY,CLOSECLICK,CLOSETEXT,'ZAMKNIJ',CAPTION,'Dobry Krótki łuk',HAUTO,WIDTH,550);">Dobry Krótki łuk</span>

我怎样才能进入其中并从&lt;span &gt;900 PLN&lt;/span&gt; 获取文本?

【问题讨论】:

    标签: jquery html dom text


    【解决方案1】:

    你在做什么很奇怪。可能有一些你无法控制的限制,但如果你真的必须这样做,你可以做到这一点。我不建议这样做,因为数据可能无法以这种方式一致地解析。

    首先,onClick 中的数据看起来可能是动态的,这意味着它可能并不总是采用相同的格式。例如,这里我们抓取了所有提交给 overlib() 的参数,并尝试在逗号上拆分以获取参数列表。在这种情况下,您的第一个参数中有一个逗号,因此我们必须将前两个参数相加,才能得到拆分后的实际第一个参数。

    其次,这在 html 中使用第一个参数中的选择器作为“div.itemdesc-s span:last()”。此跨度没有唯一标识符,因此它可能总是也可能不总是该 div 中的最后一个跨度。

    如果可能,请尝试以不同的方式获取该值,因为在将动态数据插入 onClick 属性的不同情况下,这很可能会中断。您可能会很幸运,但我建议您尝试不同的方法。

    var onClickValue = $('#qitem_6093500').attr('onclick');
    var parameters = onClickValue.substring(16, onClickValue.length - 2).split(',');
    var html = $.parseHTML(parameters[0] + parameters[1]);
    $('.myValue').text($(html).find('div.itemdesc-s span:last()').text());
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <span class="item-link item-caption" id="qitem_6093500" onclick="return overlib('    <table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;><tr><td style=&quot;vertical-align: top;&quot;><table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; class=&quot;itemImagesContainer&quot;><tr><td colspan=&quot;2&quot;><div class=&quot;itemMainImageContainer&quot; style=&quot;background: url(\'gfx/gothic/items/krotkilukdmt8.jpg\') no-repeat left;&quot;></div></td></tr></table></td><td class=&quot;item-desc itemDescContainer&quot;><div><b><i>Broń dystansowa dwuręczna (lekka)</i></b></div><div class=&quot;itemdesc-s&quot;><b>Obrażenia: <span class=incstat>27</span> - <span class=incstat>33</span></b></div><div class=&quot;itemdesc-s itemEffectsList&quot;>trafienie <b>+5</b><br />ilość ataków na rundę: <b>3</b></div><div class=&quot;itemdesc-s&quot;><b>Wymagania:</b> POZIOM: 2 (4), WIEDZA: 6 (12)</div><div class=&quot;itemdesc-s&quot;><div><b>Cena sprzedaży:</b> <span >900 PLN</span></div></div><div class=&quot;itemDescDetailsContainer&quot;><div class=&quot;itemDescDetailsLink&quot;><a href=&quot;test_items.php?class=1&amp;baseType=68&amp;prefix=0&amp;sufix=0&amp;legendary=0&amp;playerLvl=128&quot; target=&quot;_blank&quot;><img src=&quot;gfx/lhx/msg1.gif&quot;/></a></div><div class=&quot;itemDescDetailsLink&quot;><a href=&quot;?a=auction&amp;do=closed&amp;itemType=0&amp;itemClass=1&amp;prefix=0&amp;suffix=0&amp;legend=0&amp;withoff=0&amp;onlyMine=0&amp;t=10&amp;tab=99&quot;><img src=&quot;gfx/aumakebid.gif&quot;/></a></div></div></td></tr></table>',CAPTIONFONTCLASS,'item-caption item-caption2',CLOSEFONTCLASS,'item-close',TEXTFONTCLASS,'item-desc',STICKY,CLOSECLICK,CLOSETEXT,'ZAMKNIJ',CAPTION,'Dobry Krótki łuk',HAUTO,WIDTH,550);">Dobry Krótki łuk</span>
    
    <h3>My Value</h3>
    <div class="myValue"></div>

    【讨论】:

    • 我有一个具有特定值的项目,但只有在单击该项目后才会显示该值(在弹出窗口中)。我想创建一个脚本来计算我拥有的所有物品的成本。如果我正确理解了代码,您可以剪下该部分并将其替换为 html 以获得我需要的值。没想到!
    • 祝你好运!我希望你能够完成你正在寻找的东西。
    • 有时 '
      Wymagania: POZIOM: 2 (4), WIEDZA: 6 (12)
      ' 这是更长并使阵列更大。之后我找不到 span 因为 没有关闭并且无法将其解析为 html。我怎样才能使它通用?我的意思是脚本不能做$.parseHTML(parameters[0] + parameters[1]); 我需要:$.parseHTML(parameters[0] + parameters[1] + parameters[2]); 甚至$.parseHTML(parameters[0] + parameters[1] + parameters[2] + parameters[3]);
    猜你喜欢
    • 1970-01-01
    • 2018-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    相关资源
    最近更新 更多