使用jquery迭代表单元格

hug*_*dan 9 jquery

我有一个包含可变数量列的表.我写了一个函数迭代每行中的每个单元格来执行以下操作:

  1. 检查是否存在输入
  2. 检索输入的值
  3. 将饼图附加到条件#1评估为true的任何单元格

这是我的代码:

function addPieCharts() {
var htmlPre = "<span class='inlinesparkline' values='";
var htmlPost = "'></span>"
var colors = ["red", "blue"];

$("#MarketsTable tr").each(function () {

    $('td').each(function () {
        var value = $(this).find(":input").val();
        var values = 100 - value + ', ' + value;

        if (value > 0) {
            $(this).append(htmlPre + values + htmlPost);
        }
     })

})

$('.inlinesparkline').sparkline('html', { type: 'pie', sliceColors: colors });
}
Run Code Online (Sandbox Code Playgroud)

步骤1-3基本上如所描述的那样工作.运行时,饼图会添加到显示正确值的正确单元格中.我的问题是,我希望每个单元格只有一个饼图,其中存在输入.但是,我每个单元格有n个饼图,其中n等于表格中的列数.我怀疑我正在错误地使用jQuery的each()方法.谁能告诉我我做错了什么?

Sha*_*oli 18

当您选择td将上下文传递为tr(this)时,它将td仅在当前中查找tr.试试这个.

$("#MarketsTable tr").each(function () {

    $('td', this).each(function () {
        var value = $(this).find(":input").val();
        var values = 100 - value + ', ' + value;

        if (value > 0) {
            $(this).append(htmlPre + values + htmlPost);
        }
     })

})
Run Code Online (Sandbox Code Playgroud)