我在JQUERY的循环中遇到了问题。我检索感谢“获取”查询一些数据(JSON格式)。
我想将这些数据插入到一个带有“optgroup”的列表中。但我不太适合做选择组。
在插入optgroup之前,我想在$.each循环中**比较前一个值和当前值:
=> IF current_value(v.SG_CODE)!= previous_value(v.SG_CODE)然后添加optgroup
但我不知道怎么弄到。你能帮帮我吗?
我有这个代码:
function myFunction (param){
var select = $("#myselect");
select.empty();
select.append(
new Option('Loading...', '-1')
);
var jqXHR = $.getJSON( "myCFC.cfc", {
"method" : "myMethod",
"param": param,
});
setTimeout( function(){
// If status in pending, call the method fail
if ( jqXHR && jqXHR.state() === "pending" ){
jqXHR.abort();
}
}, 3000 ); // 3s
jqXHR.done( function( data, textStatus, jqXHR ){
// success - Treatment of the request
//console.log( data, textStatus, jqXHR );
select.empty();
console.log(data.length);
if(data.length>0){
select.show();
$.each(data,function(k,v){
//alert(v.ID + " --- " + v.VALUE);
select.append('<optgroup label="' + v.SG_CODE +'">');
select.append('<option value="' + v.ID + '">' + v.SUBJECT_CODE + '</option>');
select.append('</optgroup>');
});
}else{
select.hide();
}
});
jqXHR.fail( function( jqXHR, textStatus, errorThrown ){
// AJAX Request failed
console.log( jqXHR, textStatus, errorThrown );
});
jqXHR.always( function( jqXHR, textStatus ){
//console.log( jqXHR, textStatus );
})
}
非常感谢您的帮助。
此致,
Seb
2条答案
按热度按时间bvpmtnay1#
您可以使用以下命令访问以前的值:
但首先测试 k 为非零,因为零没有前面的元素,引用
SG_CODE
或其他属性将触发异常。所以你的if
看起来像这样:kknvjkwl2#
最简单的方法是,你可以做它简单地存储在临时变量的最后一个键