javascript - 使用 jQuery 确定元素的类

标签 javascript jquery

我能找到的大多数展示如何使用属性的示例都展示了如何设置它们,而不是如何检索它们。就我而言,我试图获取 an 的类,然后解析它以确定其父值。

HTML:

<select class='parent' name='parent' size='10'>
    <option value='1'>Category 1 -></option>
    <option value='2'>Category 2 -></option>
</select>

<select class='child' id='child' size='10'>
    <option class='sub_1' value='5'>Custom Subcategory 1.1</option>
    <option class='sub_1' value='3'>Subcategory 1.1</option>
    <option class='sub_2' value='4'>Subcategory 2.1</option>
</select>

对于子列表中的任何给定选项,我需要查看类属性,解析名称以查找数字(“sub_[n]”),然后获取父列表中选项的值。

到目前为止我的代码(在我的测试用例中 childVal 的值为“5”):

var class = child.find("option[value=" + childVal + "]").attr("class");

上面的类变量返回“未定义”。我知道 .find 正在工作,因为我可以将它用于其他用途。问题在于获取类名。

一旦获得类名,我就可以去掉“sub_”来获取 ID 号。

有更好的方法吗?为什么 .attr(“class”) 返回未定义?

这是一个 fiddle 链接 http://jsfiddle.net/n6dZp/8/一个损坏的例子。

谢谢,

瑞克

这是我正在开发的完整功能。这是一个级联选择列表。

<script type="text/javascript">
    function cascadeSelect(parent, child, childVal) {
        var childOptions = child.find('option:not(.static)');
        child.data('options', childOptions);

        parent.change(function () {
            childOptions.remove();
            child
                    .append(child.data('options').filter('.sub_' + this.value))
                    .change();
        })

        childOptions.not('.static, .sub_' + parent.val()).remove();

        if (childVal != '') {
            var className = child.find("option[value=" + childVal + "]").attr("class"); 

            ** need code here to select the parent and the child options based
            on childVal **
        }
    }

    $(function () {
        $('.categoryform').find('.child').change(function () {
            if ($(this).val() != null) {
                $('.categoryform').find('#CategoryId').val($(this).val());
            }
        });
    });

    $(function () {
        cascadeForm = $('.categoryform');
        parentSelect = cascadeForm.find('.parent');
        childSelect = cascadeForm.find('.child');

        cascadeSelect(parentSelect, childSelect, "5");
    });
</script>

最佳答案

class 是 Javascript 中的保留字,因此不能使用该名称的变量。尝试一下

var className = child.find("option[value=" + childVal + "]").attr("class");

关于javascript - 使用 jQuery 确定元素的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3894214/

相关文章:

javascript - 客户端服务器 REST API 验证码实现

javascript - 交叉过滤器和D3 : Filter by group AND dimension

jquery - 在 ASP.NET 中设置 Twitter Bootstrap 按钮单选组的事件状态

jquery - 使用 jQuery 禁用和启用下拉选项

javascript - 有没有简单的方法可以将单元格从一个表拖放到另一个表?

javascript - Browserify 转换插件用于评估 IIFE 并在捆绑期间替换为其结果

javascript - 事件委托(delegate),如何针对 div 内的特定跨度

javascript - 在同一设备 reactJS 上登录时跨配置文件保留的信息

javascript - 使用 JavaScript 或 Puppeteer 检测页面上的元素是否可见

javascript - .each 错误中的 jQuery 正则表达式测试