jQuery className woes

空扰寡人 提交于 2019-12-31 03:54:10

问题


I'm trying to get the name of a class that matched a regex of a checked input.

If I have this:

 <input type="radio" class="toggle toggle-1" />
 <input type="radio" class="toggle toggle-2" checked="checked" />
 <input type="radio" class="toggle toggle-3" />

I want to find out that 'toggle-2' is the checked class.

 $('.toggle:checked').className.match(/toggle\-.+?\b/);

But that produced 'className is undefined' errors.

I think my problem is that I'm using className against a jQuery object. But I'm not really sure what the alternative is.


回答1:


You can call the attr method to get any underlying attributes on the element you need.

$('.toggle:checked').attr('class').match(/toggle\-.+?\b/); 



回答2:


className is a standard DOM member, not a jQuery wrapper property. Either access through $('something')[0].className or jQuery $('something').attr('class'), but you can't mix them.

You appear to have multiple radio​s without a shared name? That won't work, they'll all act ast separately checkable fields. All radio controls that belong together need to have the same name (but different value​s) and be placed within the same form.




回答3:


Don't you need an Id on all items jQuery is to look at?




回答4:


$('.toggle:checked').hasClass('toggle-2');


来源:https://stackoverflow.com/questions/1925276/jquery-classname-woes

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!