【问题标题】:JQuery attr selector to string, stored as a variable, then passed into another JQuery selectorJQuery attr 选择器转为字符串,存储为变量,然后传入另一个 JQuery 选择器
【发布时间】:2012-06-21 14:36:41
【问题描述】:

我想使用 JQuery 选择器来抓取一个被点击的 elelement,检查以确保它具有适当的类名(在本例中为 jobtype),如果是,则使用其 name 属性值作为选择器,以hide() 类的值与第一个选择器名称属性值相同。

这是我目前的代码:

    $('fieldset.workexperience input').on('change', function() {
        // var jtaa = {"bit" : "Business Information Technology",
        //          "cs" : "Customer Service",
        //          "dev" : "Developer",
        //          "eng" : "Engineer",
        //          "mgr" : "Manager",
        //          "ocm" : "Organizational Change Management" };
        if ($(this).hasClass('jobtype')) {
            $($(this).attr("name")).hide();
        } else {

        }
    });

var jtaa 有键和值。键代表不同的可能“名称”属性。我想当一个被点击时,如果它的名字是 eng,那么 JQuery 选择器应该是$(.eng).hide()。当我直接在控制台中输入时,它可以工作,但是,直接从这里,它会出错。

【问题讨论】:

  • 试试这样的:$('.' + $(this).attr("name")).hide();.
  • 实际名称值的语法是什么?

标签: javascript jquery


【解决方案1】:
$('fieldset.workexperience input').on('change', function() {
        // var jtaa = {"bit" : "Business Information Technology",
        //          "cs" : "Customer Service",
        //          "dev" : "Developer",
        //          "eng" : "Engineer",
        //          "mgr" : "Manager",
        //          "ocm" : "Organizational Change Management" };
        var obj=$(this);
        if (obj.hasClass('jobtype')) {
            $('.'+obj.attr("name")).hide();
        } else {

        }
    });

注意句点 . 连接到选择器 此外,您可能需要考虑添加非空检查以使代码健壮..

【讨论】:

  • 我尝试制作一个临时变量并在插入之前将其连接起来,但失败了,一定是有问题,谢谢。检查它是否不为空的目的是什么?
  • 如果你有一个具有类 jobtype 的控件,但它没有 name 属性,那么你最终会运行一个像这样的选择器 $('.') 这是不正确的
猜你喜欢
  • 2012-09-08
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 2014-07-26
  • 2011-06-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多