在元素之前只抓取1个类的名称

时间:2014-02-13 16:08:15

标签: javascript jquery

如何使用jQuery获取包含我的选择框的类的名称?

我尝试过以下无效,认为它会起作用,答案应该是警惕的(“select_wrapper”)

$('#content select').focus(function(e){

var eClass = $(e).get(0).attr('class')//$(e).attr('class')   

alert(eClass)

});

HTML:

<div id="content">
    <div class="select_wrapper">
        <select id="profession">
            <option value=""></option>
            <option>administrator</option>
            <option>web developer</option>
            <option>graphic artist</option>
            <option>IT professional</option>
            <option>other</option>
        </select>
    </div>
</div>

5 个答案:

答案 0 :(得分:1)

您可以使用$(this)的方法.parent()访问父元素,然后您可以使用.attr()来获取类名

$('#content select').focus(function (e) {
    var eClass = $(this).parent().attr('class');
    alert(eClass)
});

在您的代码中e是事件

答案 1 :(得分:1)

无需在函数内部使用jQuery方法进行此类任务,只需使用(高效)“vanilla JS”

$('#content select').focus(function(e){
   var eClass = this.parentNode.className;
   alert(eClass)
});

Codepen示例:http://codepen.io/anon/pen/aEmIB

答案 2 :(得分:1)

$('#content select').focus(function(){
    var eClass = $(this).parent().attr('class');
    alert(eClass);
});

这将获取父级并输出类。

答案 3 :(得分:0)

您正在使用e作为jQuery选择器,但它不是元素,而是事件。您应该尝试使用this

然后,要选择父级,jquery具有.parent()方法。

然后你可以使用.attr()

来上课
var eClass = $(this).parent().attr('class');

但你不能使用jquery和goilla js。这并不复杂:

var eClass = this.parentNode.className;

答案 4 :(得分:0)

试试这个,

$('#content select').focus(function(e){

    var eClass = $(this).parent().attr('class'); 

    alert(eClass)

});