for 문일때 조건 값관련 문의 드립니다. 채택완료

: disN - 숨김 처리

 

실내를 선택 했을때 서브조건이 나오고, 복도했을때 안나오고, 건물했을때 서브조건이 나오고

예) 조건 

    ㄴ 실내      --- 서브조건(실내 : 방,화장실)  

    ㄴ 복도      --- 없음

    ㄴ 건물      --- 서브조건(건물 : 주차장, 출입구)

Copy
var html = '';

for(var i as 조건) {

   if (실내 == 서브조건) {

    // 조건이 맞을 경우 숨김 클레스 빼기

    $(".aa").removeClass('disN');

    // 값넣기

     html += '';

   } else {

    // 숨김 클레스 넣기 

    $(".aa").addClass('disN');

 

   }

}

위와 같이 했는데

 

실내 했을때는 서브조건이 안나오고

건물 했을때는 서브 조건이 나옵니다.

 

왜 그런지 조언 구합니다. 

감사합니다.

답변 5개

채택된 답변
+20 포인트
fVal 이값과 json_data.sub_step[k].qc_link_id 이값을 콘솔로 출력해봐서 뭐가문제인지 확인해보세요.
로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

콘솔에 출력해보면요
1실내
2복도
3건물

1번이 참일 경우 ~ disN
----숨김빼기
----숨김더하기

그래서 서브 값이 안나와요
2번이 참일 경우
---숨김다하기 2

서브가 없기 때문 맞음

3번이 참일경우

----숨김더하기
----숨김빼기

서브 값이 나옵니다.


for 문 조건 하니 이렇에 나오는데 개선 방법이 있나요?
전체적인 코드로 주세요. 테스트 해봐야 처리드릴수있네요.
codepen 이나 jsfiddle 에 올리셔서 링크 공유해주세요.
console.log(fVal+'----------'+json_data.sub_step[k].qc_link_id);

-----------------------------(실내를 선택했을때)
값을 선택해주세요 : 실내
:350 실내-------------실내
:357 숨김클레스빼기
:350 실내-------------건물
:353 숨김클레스더하기 ---> 이것때문에 서브가 숨김 처리 됩니다.

----------------------------(복도를 선택했을때)
값을 선택해주세요 : 복도
:350 복도-------------실내
:353 숨김클레스더하기
:350 복도-------------건물
:353 숨김클레스더하기

-----------------------------(건물선택했을때)
값을 선택해주세요 : 건물
:350 건물-------------실내
:353 숨김클레스더하기
:350 건물-------------건물
:357 숨김클레스빼기

댓글을 작성하려면 로그인이 필요합니다.

html도 있는 게 상황 파악하는 데 도움이 됩니다.

https://codepen.io/

여기에 소스를 올려 보세요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

코드 올려 봅니다.

 

Copy
// 1차 조건 값

var fVal = app.$(this).val();

console.log('값을 넣어주세요 : '+fVal);

 

// 서브 HTML 변수값 초기화

var subhtml = '';

 

/* 서브 옵션 정보 불러오기 ::: S */

for(var k in json_data.sub_step){

if (fVal == json_data.sub_step[k].qc_link_id) {

// 숨김 클레스 빼기

$(".sub_wrapp").removeClass('disN');

/* 1. 서브 옵션 값::: */

subhtml += '<div class="item-inner">';

subhtml += '<div class="item-title item-label">'+fVal+'</div>';

subhtml += '<div class="item-input-wrap">';

 

subhtml += '<div class=" quote_ui_box">';

 

var subvaldata = json_data.sub_step[k].qc_opt_value.split('|');

for(var r in subvaldata){

subhtml += '<label class="radio">';

subhtml += '<input type="radio" id="substep_'+r+'" name="substep'+r+'" class="st_event_inp st_event_push_inp ss" data-field="'+subvaldata[r]+'" value="'+subvaldata[r]+'">';

subhtml += '<i class="icon-checkbox"></i>';

subhtml += '<span>'+subvaldata[r]+'</span>';

subhtml += '</label>';

}

 

subhtml += '</div>';

subhtml += '</div>';

app.$('.sub-slide').eq(0).find(".sub_wrapp").html(subhtml);

 

/* 5. 서브 옵션 입력값 체크 */

app.$(".sub-wrapper .ss").click(function(e){

var subchk = app.$(this)[0].checked;

console.log('체크'+subchk);

 

if (subchk == true) {

app.$(".sub-wrapper .ss:checked").each(function(index){

fsubVal = app.$(this).val();

console.log('서브값값을 넣어주세요 : '+fsubVal);

});

}

});

} else {

// 숨김 클레스 넣기

$(".sub_wrapp").addClass('disN');

}

}

/* 서브 옵션 정보 불러오기 ::: E */
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

json_data.sub_step 여기값도 보여주세요. fVal 도요

댓글을 작성하려면 로그인이 필요합니다.

위 psuedo 코드로는 파악하기 힘드네요.

실제 소스를 올려 보시겠어요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

코드 올렸습니다. 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

조건 값에는 뭐가 들어있나요? 

한글말고 코드로 보여주세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

코드 올렸습니다.
json_data.sub_step 여기값도 보여주세요. fVal 도요
=> 전달 드립니다.

/* 메인 옵션*/
0: {qc_id: "7", qc_ca_id: "1303", qc_opt_num: "1", qc_opt_name: "실내", qc_opt_type: "1",…}
1: {qc_id: "10", qc_ca_id: "1303", qc_opt_num: "2", qc_opt_name: "복도", qc_opt_type: "3",…}
2: {qc_id: "12", qc_ca_id: "1303", qc_opt_num: "3", qc_opt_name: "건물", qc_opt_type: "3",…}

fVal = 1차 : qc_opt_name

/*서브옵션*/
0: {qc_id: "13", qc_ca_id: "1303", qc_opt_num: "11", qc_link_id: "실내", qc_opt_type: "1", qc_opt_value:"방|화장실"…}
1: {qc_id: "14", qc_ca_id: "1303", qc_opt_num: "13", qc_link_id: "건물", qc_opt_type: "2",qc_opt_value:"주차장|출입구"…}
이렇게면 알수가없습니다. codepen 이나 jsfiddle 에 올리셔서 링크 공유해주세요.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고