我想使用JS查找下面的部分并将类从fa-list-ol
更改为fa-car
但我似乎无法改变它。任何帮助表示赞赏!
PS:我想去:如果data-path=test
,则找到包含i
的{{1}}类并将其更改为必填字段。
我可以使用Jquery或JS。一旦它可以工作我很高兴
fa-list-ol
JS(现在我没有[3]< - 我不想要这个我只是想让它自动找到它,因为我有超过100个列表!):
<li class="pl-folder" data-path="test">
<i class="fa fa-bars pl-action" data-toggle="modal" data-target="#modal-pl-menu-playlist" title="Actions"></i>
<span>
<i class="fa fa-list-ol"></i>
hello world
</span>
</li>
答案 0 :(得分:3)
实现所需内容的最简单方法是使用jQuery&#39; filter()
查找具有匹配li
属性值的data-path
,然后遍历DOM以查找其子i
元素并切换所需的类。试试这个:
$('.pl-folder').filter(function() {
return $(this).data('path') == 'test';
}).find('span i').toggleClass('fa-list-ol fa-car');
&#13;
.fa-car {
color: #C00;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="pl-folder" data-path="test">
<i class="fa fa-bars pl-action" data-toggle="modal" data-target="#modal-pl-menu-playlist" title="Actions"></i>
<span>
<i class="fa fa-list-ol">TEST</i>
hello world
</span>
</li>
<li class="pl-folder" data-path="foo">
<i class="fa fa-bars pl-action" data-toggle="modal" data-target="#modal-pl-menu-playlist" title="Actions"></i>
<span>
<i class="fa fa-list-ol">FOO</i>
hello world
</span>
</li>
<li class="pl-folder" data-path="bar">
<i class="fa fa-bars pl-action" data-toggle="modal" data-target="#modal-pl-menu-playlist" title="Actions"></i>
<span>
<i class="fa fa-list-ol">BAR</i>
hello world
</span>
</li>
</ul>
&#13;
请注意,我只在<i>
元素中添加了一些文本,以使类更改的效果可见。
您还可以简化jQuery以使用属性选择器,但请注意,这仅在DOM中设置data
attirbute时才有效,而不是在jQuery的内部缓存中设置:
$('.pl-folder[data-path="test"]').find('span i').toggleClass('fa-list-ol fa-car');
答案 1 :(得分:1)
$("li[data-path='test']").each( function(){
$(this).find('i.fa-list-ol').toggleClass('fa-list-ol requiredClass');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="pl-folder" data-path="test">
<i class="fa fa-bars pl-action" data-toggle="modal" data-target="#modal-pl-menu-playlist" title="Actions"></i>
<span>
<i class="fa fa-list-ol"></i>
hello world
</span>
</li>
&#13;
$("li[data-path='test']").each( function(){
$(this).find('i.fa-list-ol').removeClass('fa-list-ol').addClass('requiredClass');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="pl-folder" data-path="test">
<i class="fa fa-bars pl-action" data-toggle="modal" data-target="#modal-pl-menu-playlist" title="Actions"></i>
<span>
<i class="fa fa-list-ol"></i>
hello world
</span>
</li>
&#13;