对于具有多值的数据属性,我有一个问题。
我有一个有台阶的表格。在第一步中,我有一个节点:
<div id="step-0">
<input id="nd1" type="radio" name="ordernode" value="val1">
<input id="nd2" type="radio" name="ordernode" value="val2">
</div>
如果用户设置了第一个值,则使用data-node nd1
的另一个步骤(到此id)将具有class activated
。
<div id="step-1" class="step" data-node="nd1">
Step 1
</div>
<div id="step-3" class="step" data-node="nd1">
Step 3
</div>
所以对于另一个节点。但是有一些属于node 1
和node 2
的步骤。我不想创建与相同的、node 1
和node 2
,这就是为什么我尝试添加data-node
属性2的原因,比如
<div id="step-4" class="step" data-node="nd1,nd2">
Step 4
</div>
这个步骤属于node 1
和node 2
。
没有data-node
属性在JQuery中的多个值,我有
var nodeActive = $(this).find('input').attr('id');
$(this).parents('.sof_body').find('[data-node="'+nodeActive+'"]').addClass('activated');
它工作得又快又好,我没问题。但是对于多个值,我必须在每个步骤中搜索data-node
属性,并尝试在字符串中查找节点id,如
var nodeActive = $(this).find('input').attr('id');
$(this).parents('.sof_body').find('.step').each(function(){
var nodesBe = $(this).data('node');
if (nodesBe.indexOf(''+nodeActive+'') >= 0){
$(this).addClass('activated');
}
});
这个函数也能工作,但比第一次要慢,这会导致另一个函数出现许多问题,后者会在这个函数之后调用。
我的问题是,是否有另一种方法可以实现对多个值的搜索功能,使之不需要each function
,或者使其变得更快?
发布于 2017-09-28 02:56:30
https://stackoverflow.com/questions/46467382
复制相似问题