0

我正在尝试动态插入链接以在网页的每个部分的末尾返回到文档的顶部(很遗憾,但它是基于表格的布局)。我正在使用 jQueryfilter()选择器,虽然我没有收到错误,但它没有对浏览器输出进行任何更改。当我使用alert()变量时,它说Object object. 我知道问题出在我定义过滤器本身的那一行,但我找不到类似的例子,我不知道如何解决它。

这是代码:

HTML

<table>
  <tr class="head"><td colspan="2">section title 1 </td></tr>
  <tr><td>text</td>
    <td><img /></td>
  </tr>
  <tr><td>text</td>
    <td>< img /></td>
  </tr>
  <tr class="head"><td colspan="2">section title 2 </td></tr>
  <tr><td>text</td>
    <td><img /></td>
  </tr>
  <tr><td>text</td>
    <td>< img /></td>
  </tr>
<!-- you get the point -->

JavaScript

$(document).ready(function(){
    var lastRow = $('tr').filter(function(){
        return $(this).next()==$(".head"); // Here's the problem, IMO
    });
    var a = '<tr class="toTop"><td class="top" style="text-align:right" colspan="2"><a href="#main">go to top &uarr;</a></td></tr>';
    lastRow.after(a);
});

该脚本尝试选择带有链接的行之前的每一行class="head"并插入带有top链接的行。

4

1 回答 1

0

那是因为您正在比较 2 个不同的对象,它总是false,您应该使用is方法或length属性:

var lastRow = $('tr').filter(function(){
    return $(this).next(".head").length;         
    // return $(this).next().is(".head"); 
});

但是,我建议使用.prev()方法:

$('tr.head').prev(); // selects the previous sibling tr element
于 2013-08-25T09:33:35.883 回答