在我的页面上单击文本时,我想获取最近(向上)span元素的值为“network_ip”类。这是我的代码:
<div class="ip_header">
<div style="margin-left:30px;">
<div class="flag_and_ip">
<img title="United Kingdom" src="/gearbox/component/ui/htdocs_zend/public/img/mini-flags/gb.gif">
<span class="network_ip">213.171.218.xxx</span>
</div>
<div class="align_count">48</div>
IPs,
<div class="align_count">63</div>
Domains
</div>
</div>
<div class="network_ip_content ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content-active" style="height: 4417.6px; display: block;" role="tabpanel">
<h4>
213.171.218.97 (
<b>1</b>
Domains)
</h4>
<p>
<a href="http://private.dnsstuff.com/tools/whois.ch?ip=213.171.218.97&src=ShowIP" target="_blank">IP Whois</a>
,
<a href="http://search.live.com/results.aspx?q=ip%3A213.171.218.97" target="_blank">IP Neighbours</a>
</p>
<table class="table table-striped table-bordered table-condensed">
<colgroup>
<tbody>
<tr>
<td>
<a class="domain" href="#">studentjetpacks.com</a>
</td>
<td>
</tr>
</tbody>
</table>
到目前为止我在jQuery中的尝试:
$(".domain").click(function(){
$("div#list_lm_domain_urls_dialog").dialog('open');
var domain = $(this).text();
var network_ip = $(this).closest('span.network_ip').text();
alert(network_ip);
refresh_lm_domain_links(domain,0,100);
return false;
});
警报没有任何结果。
感谢任何帮助。
答案 0 :(得分:1)
你需要做的是这个
$(this) // starting from the anchor
.closest('div.network_ip_content ') // find div that wraps the table content
.prevAll('.ip_header:first') // get first prev div sibling with class=ip_header
.find('span.network_ip') // find the span
.text() // get the text
答案 1 :(得分:0)
你真的应该找到一种更好的方法来将锚链接到范围 - 即使用ID或data-
属性。
但是,既然你要求搜索最近的span
向上,你就去:
$(".domain").click(function(){
var $anchor = $(this);
$("div#list_lm_domain_urls_dialog").dialog('open');
var domain = $anchor.text();
var network_ip;
$anchor.parents().each(function(){
var $spans = $(this).prevAll().find('span.network_ip');
if ($spans.length>0) {
network_ip = $spans.last().text()
return false;
}
});
alert(network_ip);
refresh_lm_domain_links(domain,0,100);
return false;
});
这将从最近的父级向上获取锚点和循环的所有父级。对于每个父级,它使用.prevAll()
检查以前的兄弟姐妹并查找范围。最后,它从找到的跨度中取最后一个 - 即如果有多个则为“底部”跨度。