如何使用javascript / jQuery访问类名列表?

时间:2010-09-29 11:42:36

标签: javascript jquery html

这里是html元素:

<input class="myClass problemOne" type=text value=something></input>
<input class="myClass problemTwo" type=text value=somethingelse></input>

这里是javascript和jquery,我在其中尝试访问classaname,方法a或b都不起作用......“classname为null或不是对象”。

var myElems = $(this).find(".myClass");

myElems.each(function(index) {
   var classLista = $(this).className.split(/\s+/);
   var classListb = myElems[index].className.split(/\s+/);
   var classListc = this.className.split(/\s+/);

   categories[index].key = classlist[1]; 
   categories[index].value = $(this).value();   
});

最终目标是将problemOne和problemTwo作为字符串返回,然后存储在一个数组中,然后转到数据库blah blah blah。

非常感谢任何输入!

修改 解释了最终目标

4 个答案:

答案 0 :(得分:7)

您可以使用jQuery的.attr()方法获取任何属性,包括类。

$(this).find('.myClass').each(function(index) {
    var element = $(this), classList;
    classList = element.attr('class').split(/\s+/);

    categories[index] = {
        key : classList[1],
        value : element.value()
    }
});

<强>除了
如果categories[index]已包含其他信息,您可以使用$.extend()

$.extend(categories[index], {
    key : classList[1],
    value : element.value()
});

答案 1 :(得分:3)

该属性称为className。这是DOM元素的属性,而不是jQuery元素,因此this.className应该可以工作。

答案 2 :(得分:1)

只需使用attr方法并拆分:

<html>
<body>
<input class="myClass problem" type=text value=something></input>
<input class="myClass problem" type=text value=somethingelse></input>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<script>
   //<!--
    $(document).ready(function(){
        var Classes = $('input').attr('class').split(' ');
        alert(Classes[0] + ' - '+  Classes[1]);
    });
    //-->
</script>
</body>
</html>

答案 3 :(得分:0)

POJ中的

var elms = document.getElementsByTagName("INPUT"), 
    i = elms.length,
    arr = [],
    classArray;

while​(i--) {
    classArray = elms[i].className.split(/\s+/);
    if (classArray.length > 1) {
        arr.push(classArray[1]);
    }
}
alert(arr.join(','));