这里是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。
非常感谢任何输入!
修改 解释了最终目标
答案 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)
:
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(','));