我有这个html结构:
<a href="javascript:;" class="print">Open</a>
<pre class="CodeBlock">
<ol class="linenums">
<li class="L0"><span>one</span></li>
<li class="L1"><span>two</span></li>
<li class="L2"><span>three</span></li>
</ol>
</pre>
<br /><br />
<a href="javascript:;" class="print">Open</a>
<pre class="CodeBlock">
<ol class="linenums">
<li class="L0"><span>four</span></li>
<li class="L1"><span>vfive</span></li>
<li class="L2"><span>six</span></li>
</ol>
</pre>
我使用锚点打开一个新窗口,其中包含pre标签的内容,如下所示:
function nWin() {
var w = window.open();
var html = $(".CodeBlock").html();
$(w.document.body).html(html);
}
$(function() {
$(".print").click(nWin);
});
单击第二个锚点输出第一个pre元素的文本,它应该是第二个。我怎样才能做到这一点?
答案 0 :(得分:1)
您可以使用this
关键字引用点击的元素,然后使用next()
方法查找最近的同级pre
元素。试试这个:
function nWin() {
var w = window.open();
var html = $(this).next('.CodeBlock').html();
$(w.document.body).html(html);
}
$(function() {
$(".print").click(nWin);
});
答案 1 :(得分:1)
您需要在事件处理程序中使用.next()
来获取以下兄弟,这可以使用this
来实现,var html = $(this).next(".CodeBlock").html();
引用调用处理程序来获取兄弟的元素。
var html = $(".CodeBlock").html();
而不是
d = {k:v for k,v in zip(L1,L2)}