繁体   English   中英

每个功能仅对console.log有效

[英]Each function is working only for console.log

需要将所有类名另存为包装文本到另一个div。 仅显示最后一个类名,但在控制台日志中它正在工作。 无法找出问题所在。

 $(".score" ).children('div').each(function(arr) { clsas = $(this).attr('class'); $('.part-list').html(clsas); clsas = clsas.replace(/_/gm, " ") .replace(/(\\d{1,}) (\\d{1,})/gm, "$1, $2") .replace(/stff /gm, "") .replace(/(\\B)(\\d{1,})/gm, "$1 $2"); console.log(clsas); }).each(function() { $('.part-list').html( "<div class='instrument'>" + clsas + "</div>" ); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <div class="part-list"></div> <div class="score"> <div class="stff_Flute1_2"></div> <div class="stff_Oboe_1_2"></div> <div class="stff_Clarinet_1_2"></div> </div> 

https://jsfiddle.net/3od8uudf/2/

$ .html(string)设置html的值,因此对于每次循环,都将html设置为其他值。

在您的示例中,它将设置为长笛,然后是双簧管,然后是单簧管。

一种解决方法是创建一个新元素并将其附加到所需的位置。

例如

var txt1 = "<div class='instrument'>" + clsas + "</div>" ; // Create element with HTML  

$('.part-list').append(txt1);      // Append the new element

 $(".score" ).children('div').each(function( arr ) { clsas = $(this).attr('class'); clsas = clsas.replace(/_/gm, " ").replace(/(\\d{1,}) (\\d{1,})/gm, "$1, $2").replace(/stff /gm, "").replace(/(\\B)(\\d{1,})/gm, "$1 $2"); $('.part-list').append("<div class='instrument'>" + clsas + "</div><br>"); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <div class="part-list"></div> <div class="score"> <div class="stff_Flute1_2"></div> <div class="stff_Oboe_1_2"></div> <div class="stff_Clarinet_1_2"></div> </div> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM