X10*_*0nD 578 javascript jquery
我想使用jQuery获取类名
如果它有id
<div class="myclass"></div>
Run Code Online (Sandbox Code Playgroud)
Bol*_*wyn 1033
通过其他方式获取元素作为jQuery对象,然后
var className = $('#sidebar div:eq(14)').attr('class');
Run Code Online (Sandbox Code Playgroud)
应该做的伎俩.用于ID使用.attr('id').
如果您在事件处理程序或其他jQuery方法中,其中元素是没有包装器的纯DOM节点,则可以使用:
this.className // for classes, and
this.id // for IDs
Run Code Online (Sandbox Code Playgroud)
两者都是标准的DOM方法,并且在所有浏
san*_*ino 224
.hasClass()当您想要检查元素是否具有特定元素时,最好使用它class.这是因为当一个元素有多个class时,检查它并不容易.
例:
<div id='test' class='main divhover'></div>
Run Code Online (Sandbox Code Playgroud)
哪里:
$('#test').attr('class'); // returns `main divhover`.
Run Code Online (Sandbox Code Playgroud)
随着.hasClass()我们可以测试是否div有类divhover.
$('#test').hasClass('divhover'); // returns true
$('#test').hasClass('main'); // returns true
Run Code Online (Sandbox Code Playgroud)
Abd*_*UMI 39
小心,也许,你有一个类和一个子类.
<div id='id' class='myclass mysubclass' >dfdfdfsdfds</div>
Run Code Online (Sandbox Code Playgroud)
如果您使用以前的解决方案,您将拥有:
myclass mysubclass
Run Code Online (Sandbox Code Playgroud)
因此,如果您想拥有类选择器,请执行以下操作:
var className = '.'+$('#id').attr('class').split(' ').join('.')
Run Code Online (Sandbox Code Playgroud)
你会的
.myclass.mysubclass
Run Code Online (Sandbox Code Playgroud)
现在,如果要选择具有相同类的所有元素,例如上面的div:
var brothers=$('.'+$('#id').attr('class').split(' ').join('.'))
Run Code Online (Sandbox Code Playgroud)
这意味着
var brothers=$('.myclass.mysubclass')
Run Code Online (Sandbox Code Playgroud)
OR可以用2行中的vanilla javascript实现:
const { classList } = document.querySelector('#id');
document.querySelectorAll(`.${Array.from(classList).join('.')}`);
Run Code Online (Sandbox Code Playgroud)
小智 27
这是为了将第二个类用于元素中的多个类
var class_name = $('#videobuttonChange').attr('class').split(' ')[1];
Run Code Online (Sandbox Code Playgroud)
mg1*_*075 10
如果您<div>有id:
?<div id="test" class="my-custom-class"></div>????????????????????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)
...你可以试试:
var yourClass = $("#test").prop("class");
Run Code Online (Sandbox Code Playgroud)
如果您<div>只有a class,您可以尝试:
var yourClass = $(".my-custom-class").prop("class");
Run Code Online (Sandbox Code Playgroud)
小智 6
如果您要使用split函数来提取类名,那么您将不得不补偿可能产生意外结果的潜在格式变化.例如:
" myclass1 myclass2 ".split(' ').join(".")
Run Code Online (Sandbox Code Playgroud)
产生
".myclass1..myclass2."
Run Code Online (Sandbox Code Playgroud)
我认为你最好使用正则表达式来匹配类名允许的字符集.例如:
" myclass1 myclass2 ".match(/[\d\w-_]+/g);
Run Code Online (Sandbox Code Playgroud)
产生
["myclass1", "myclass2"]
Run Code Online (Sandbox Code Playgroud)
正则表达式可能不完整,但希望您理解我的观点.这种方法减少了格式不良的可能性.
为了完成Whitestock的答案(这是我发现的最好的答案)我做了:
className = $(this).attr('class').match(/[\d\w-_]+/g);
className = '.' + className.join(' .');
Run Code Online (Sandbox Code Playgroud)
所以对于"myclass1 myclass2",结果将是'.myclass1 .myclass2'
您可以通过两种方式获取类名:
var className = $('.myclass').attr('class');
Run Code Online (Sandbox Code Playgroud)
要么
var className = $('.myclass').prop('class');
Run Code Online (Sandbox Code Playgroud)
小智 5
<div id="elem" class="className"></div>
Run Code Online (Sandbox Code Playgroud)
用Javascript
document.getElementById('elem').className;
Run Code Online (Sandbox Code Playgroud)
用jQuery
$('#elem').attr('class');
Run Code Online (Sandbox Code Playgroud)
要么
$('#elem').get(0).className;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1272646 次 |
| 最近记录: |