代码之家  ›  专栏  ›  技术社区  ›  SimonDowdles

jQuery:检查是否已经存在包含特定值的表行

  •  10
  • SimonDowdles  · 技术社区  · 14 年前

    我有一个jQuery脚本,它将一行附加到表中。简而言之,用户可以从下拉菜单中选择一个值,然后输入“x”amount of months并点击“add”,将行追加到表中。例如,以下行由用户附加:

    <tr>
      <td>Some Value</td>
      <td>2</td>
    </tr>
    

    <td> < 元素只是因为还有其他元素 <td> 元素,但它们包含隐藏字段,这些字段将新添加的数据提交到服务器端脚本,因此我希望验证尽可能简短。

    #tblspecializations

    非常感谢你的意见。

    3 回复  |  直到 3 年前
        1
  •  22
  •   Andy E    14 年前

    你也许可以用 :contains() :

    $('#tblspecializations tr > td:contains(Some Value) + td:contains(2)').length
    

    - Example

    不过,请注意 :包含()

        2
  •  2
  •   Bozho    14 年前

        3
  •  2
  •   Giuseppe Accaputo    14 年前

    简而言之,下面的代码 click() 处理者应该在你的情况下帮助你;你可以 see the whole code in action

    $(function(){
        $("#btn").click(function(){
            var table = $("#tblspecializations");
            var firstTd = $("td:first", table);
            var secondTd = firstTd.next();
    
            if(firstTd.text() == $("#dropdown").val() && secondTd.text() == $("#num").val())
                alert("Error: You're trying to add the same entry");
        });
    });
    

    简要说明:使用 td:first 在选择器中,您将获得表中的第一列,并使用 next() 函数,你得到它的同级,即第二列。