jQuery:指定子元素的索引连续的onclick函数

发布于 2024-10-02 18:43:02 字数 451 浏览 1 评论 0原文

我有一个表行的单击函数,它需要传递该行中前两个 td 的内容。

// Assign a click handler to the rows
$('#supportTables1 tr').click(function ()
{
    var firstTd = $(this).find('td').html();
    //need to get the next td.  below line doesn't work.
    var secondTd = $(this).find('td')[1].html();
    window.open('snglContactList.php'+'?search_word='+firstTD+'?list_name=secondTd);
});

我可以很好地获取第一个 td,但我对访问第二个 td 的极其简单的问题感到困惑(我尝试了设置其索引的不同方法)。

I have click function for a table row which needs to pass the content of the first two tds in the row.

// Assign a click handler to the rows
$('#supportTables1 tr').click(function ()
{
    var firstTd = $(this).find('td').html();
    //need to get the next td.  below line doesn't work.
    var secondTd = $(this).find('td')[1].html();
    window.open('snglContactList.php'+'?search_word='+firstTD+'?list_name=secondTd);
});

I can get the first td just fine, but I'm stumped on what I'm sure is the profoundly simple matter of accessing the second td (I've tried diferrent methods of setting it's index).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

远昼 2024-10-09 18:43:02

数组表示法 [1] 返回 DOM 元素,而不是 jQuery 对象,因此您不能在其上使用 .html() (一个 jQuery 方法)。使用 jQuery 函数 .eq() 来获取元素:

  // Assign a click handler to the rows
  $('#supportTables1 tr').click(function ()
  {
        var firstTd = $(this).find('td').eq(0).html();
        var secondTd = $(this).find('td').eq(1).html();
        window.open('snglContactList.php'+'?search_word='+firstTD+'?list_name='+secondTd);
  });

The array notation [1] returns a DOM element, not a jQuery object, so you can't use .html() (a jQuery method) on it. Use the jQuery function .eq() to get the elements instead:

  // Assign a click handler to the rows
  $('#supportTables1 tr').click(function ()
  {
        var firstTd = $(this).find('td').eq(0).html();
        var secondTd = $(this).find('td').eq(1).html();
        window.open('snglContactList.php'+'?search_word='+firstTD+'?list_name='+secondTd);
  });
弃爱 2024-10-09 18:43:02

$(this).find('td') 将返回所有 在单击的行内。您可以使用 eq(idx) 方法获取特定索引处的索引:

$('#supportTables1 tr').click(function ()
{
    var tds = $(this).find('td');
    var firstTd = tds.eq(0).text();
    var secondTd = tds.eq(1).text();
    window.open('snglContactList.php'+'?search_word='+firstTD+'?list_name='+secondTd);
});

此处的工作示例(使用警报而不是 window.open...):

http://jsfiddle.net/E5Z5V/

$(this).find('td') will return all <td> within the clicked row. You can use the eq(idx) method to get ones at a particular index:

$('#supportTables1 tr').click(function ()
{
    var tds = $(this).find('td');
    var firstTd = tds.eq(0).text();
    var secondTd = tds.eq(1).text();
    window.open('snglContactList.php'+'?search_word='+firstTD+'?list_name='+secondTd);
});

Working example here (with alerts rather than window.open...):

http://jsfiddle.net/E5Z5V/

记忆消瘦 2024-10-09 18:43:02

表格行有自己的单元格集合,可以通过 cells 属性访问。

这样做:

var firstTd = this.cells[ 0 ].innerHTML;
var secondTd = this.cells[ 1 ].innerHTML;

或者如果您坚持使用 jQuery 解决方案,请执行以下操作:

var firstTd = $(this.cells[ 0 ]).html();
var secondTd = $(this.cells[ 1 ]).html();

示例: http:// jsbin.com/ivabu4/

请注意,第一个版本最快,因为它直接访问属性。

Table rows have their own collection of the cells they contain, which is accessed by the cells property.

Do this:

var firstTd = this.cells[ 0 ].innerHTML;
var secondTd = this.cells[ 1 ].innerHTML;

Or of you insist on a jQuery solution, do this:

var firstTd = $(this.cells[ 0 ]).html();
var secondTd = $(this.cells[ 1 ]).html();

Example: http://jsbin.com/ivabu4/

Note that the first version is fastest because it accesses properties directly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文