首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jquery .find()检查DOM中的存在项

使用jquery .find()检查DOM中的存在项
EN

Stack Overflow用户
提问于 2015-08-27 01:53:02
回答 1查看 30关注 0票数 0

我正在尝试检查我的表行中是否有一个带有类<td>.choose-array。如果不是,它应该跳过这个元素。这是我到目前为止所得到的,但是它总是抛出错误cannot read property 'substr' of undefined

代码语言:javascript
复制
   <table class="custom-includes">
        <tbody><tr>
            <td></td>
            <td>
                <input type="checkbox" name="7700-head" checked="">7700 Head
            </td>
        </tr>
        <tr>
            <th>+/-</th>
            <th>Array(s)</th>
        </tr>
        <tr>
            <td class="remove-array">-</td>
            <td>
                <select class="choose-array" name="array-0">
                    <option value="7300E-10">7300E-10</option>
                    <option value="7300E-17">7300E-17</option>
                    <option value="7300E-26">7300E-26</option>
                    <option value="7300E-35">7300E-35</option>
                    <option value="7300-52">7300-52</option>
                    <option value="7300-70" selected="">7300-70</option>
                </select>
            </td>
        </tr>
        <tr>
            <td class="remove-array">-</td>
            <td>
                <select class="choose-array" name="array-2">
                    <option value="7300E-10">7300E-10</option>
                    <option value="7300E-17">7300E-17</option>
                    <option value="7300E-26">7300E-26</option>
                    <option value="7300E-35">7300E-35</option>
                    <option value="7300-52">7300-52</option>
                    <option value="7300-70" selected="">7300-70</option>
                </select>
            </td>
        </tr>
        <tr id="add-array">
            <td class="add-array">+</td>
        </tr>
    </tbody></table>

javascript/jQuery

代码语言:javascript
复制
$("body").on("click", ".remove-array", function() {
    var name = $(this).closest("tr").find(".choose-array").attr("name");
    var num = parseInt(name.substr(name.length-1));
    $(this).closest("tr").remove();
    $(".custom-includes").find("tr").each(function() {
        if ($(this).attr("id") == "add-array") {
            return;
        }
        if ($(this).find(".choose-array")) {
            var subname = $(this).find(".choose-array").attr("name");
            var subnum = parseInt(subname.substr(subname.length-1));
            if (subnum > num) {
                $(this).find(".choose-array").attr("name", "array-"+(subnum-1));
            }
        }
    });
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-27 01:57:52

您可以使用.length来判断选择器是否匹配。

代码语言:javascript
复制
var choose_array = $(this).closest("tr").find(".choose-array");
if (choose_array.length > 0) {
    var name = choose_array.attr("name");
    ...
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32239442

复制
相关文章

相似问题

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