Вы можете сохранить значок в ранее определенной переменной, например markerIcon
, а затем использовать его позже, так как он будет иметь ожидаемое значение:
$.getJSON("<?=base_url() ?>home/sekolah_json", function(data){
$.each(data, function(i, field){
var longitude = parseFloat(data[i].longitude);
var latitude = parseFloat(data[i].latitude);
var nama = (data[i].nama_sekolah);
var marker = (data[i].jenjang);
var markerIcon;
if (marker == 'sd') {
markerIcon = new L.Icon({iconUrl: '<?=base_url() ?>assets/leaflet/images/sd1.png', iconSize:[30,30]});
} else {
markerIcon = new L.Icon({iconUrl: '<?=base_url() ?>assets/leaflet/images/smp1.png', iconSize:[30,30]});
}
L.marker([longitude, latitude], {icon: markerIcon}).addTo(map)
.bindPopup(nama, {autoClose: false, autoPan: false})
.openPopup();
});
});