如何在onclick弹出窗口中获取跨度文本-jQuery

时间:2018-09-27 19:18:09

标签: jquery html dom text

我有一个问题:

<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>

如何进入其中并从<span >900 PLN</span>中获取文字?

1 个答案:

答案 0 :(得分:0)

你在做什么很奇怪。可能存在一些您无法控制的限制,但是如果确实需要,您可以执行此操作。我不建议您这样做,因为数据可能无法以这种方式一致地解析。

首先,您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>