2013-07-25 3 views
0

나는 체크 박스의 change() 이벤트에 따라 라벨 값을 설정하려하고있다. 내 체크 박스와 라벨 코드는;체크 박스에 따라 라벨 값 설정하기 JQuery

<div class="Sell" style="width: 47px;"><input type="checkbox" id="chkSell" class="_1"/></div> 
<div class="BuySelllbl" style="width: 10px;"><label id="lblBuySell_1"></label></div> 

이며 JQuery는 다음과 같습니다.

$("#chkSell").live('change',function(){ 
    var y = $(this).attr("class"); 
    var x = "#lblBuySell" + y; 
    alert(x); 
    if(this.checked){  
     $(x).attr("value","S"); 
     $(x).attr("style","color: red;"); 
    }else{ 
     $(x).removeAttr("value"); 
    } 
}); 

알림은 매번 레이블의 올바른 ID를 출력하지만 .attr 속성에는 아무 것도 설정되지 않습니다. 구문에 잘못된 부분이 있습니까? 어떤 도움도 좋습니다. NickG

답변

1

속성 값은 당신을 위해 문을 교체해야합니다, 라벨 값을 가지고 있지 않습니다

$("#chkSell").live('change',function(){ 
    var y = $(this).attr("class"); 
    var x = "#lblBuySell" + y; 
    alert(x); 
    if(this.checked){  
     $(x).html("S"); 
     $(x).attr("style","color: red;"); 
    }else{ 
     $(x).removeAttr("value"); 
    } 
+0

감사합니다 @ 마커스 정말 감사합니다, 그 가치가 받아 들여지지 않을 몰랐다, 인라인 속성 값이 아닌가요? –

+1

속성 값은 입력 유형에서만 작동합니다. 레이블은 구조체이므로 내부에 무언가를 추가하기 때문에 html 메서드를 사용해야합니다. 팁 만 있으면 다른 답변에서 언급 한 것처럼 CSS 방법을 사용할 수 있습니다. $ (x) .html ('S') .css ('color', 'red'); –

1

감사합니다. 확인란을 선택하는 방법을 변경해야합니다.

// First method - Recommended 
$('#checkbox').prop('checked') // Boolean true 

// Second method - Makes code more readable (e.g. in if statements) 
$('#checkbox').is(':checked') // Boolean true 

// Third method - Selecting the checkbox & filtering by :checked selector 
$('#checkbox:checked').length // Integer >0 
$('#checkbox:checked').size() // .size() can be used instead of .length 

// Fourth method - Getting DOM object reference 
$('#checkbox').get(0).checked // Boolean true 
$('#checkbox')[0].checked  // Boolean true (same as above) 
+2

'this.checked'의 문제점은 무엇입니까? – adeneo

0
$("#chkSell").live('change',function(){ 
    var x = $("#lblBuySell." + $(this).attr("class")); 

    if(this.checked == true) 
    { 
     x.attr("value","S"); 
     x.attr("style","color: red;"); 
    } 
    else 
     x.removeAttr("value"); 
}); 
당신이 길이 변수를 사용하여 어떤 요소를 선택하지 않은 경우 당신은 확인할 수 있습니다

x.length 
관련 문제