首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery:检查包含特定值的表行是否已存在

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

Stack Overflow用户
提问于 2010-09-07 18:43:05
回答 3查看 41.2K关注 0票数 11

我有一个将行追加到表中的jQuery脚本。简而言之,用户可以从下拉菜单中选择一个值,然后输入'x‘月数并点击'add',这会将该行附加到表中。例如,下面的行由用户追加:

代码语言:javascript
运行
复制
<tr>
  <td>Some Value</td>
  <td>2</td>
</tr>

现在,如果用户再次执行相同的操作,我需要停止该过程,并警告他正在尝试添加重复的值。如何-使用jQuery -我是否可以检查上面的行是否已经存在,其中第一个和第二个<td>元素与他试图添加的数据具有相同的值?我之所以只说第一个和第二个<td>元素,是因为行中还有其他<td>元素,但它们包含将新添加的数据提交到服务器端脚本的隐藏字段,因此我希望验证尽可能简短和简单。

如果有任何帮助,则表ID为#tblspecializations

非常感谢您的意见。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-07 18:51:05

您也许能够使用

代码语言:javascript
运行
复制
$('#tblspecializations tr > td:contains(Some Value) + td:contains(2)').length

  • Example

但是请注意,如果给定的字符串与元素文本中的任何位置匹配,则:contains()将返回该元素。

票数 23
EN

Stack Overflow用户

发布于 2010-09-07 18:52:28

我建议您将数据保存在某种数据结构中(例如,一个(关联)数组)。因此,您将验证结构中的数据,而不是DOM中的数据。

票数 2
EN

Stack Overflow用户

发布于 2010-09-07 18:59:36

简而言之,click()处理程序中的以下代码应该会在您的情况下对您有所帮助;您可以see the whole code in action

代码语言:javascript
运行
复制
$(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()函数,您将获得它的兄弟,即第二列。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3657885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档