2014-07-10 3 views
1

내가하려는 것은 jQuery로 특정 열의 값을 변경하는 것입니다. 저는 칼럼의 이름 만 알고 있지만, 칼럼의 위치는 항상 같지는 않습니다.클래스의 html 값을 변경하십시오

데모 : http://jsfiddle.net/4MJjU/

을이 코드가 작동하지만,이 확인하고 값을 변경하는 가장 좋은 방법은?

var IDcolumns = document.getElementsByClassName('column-'+positionID); 
    for (i=0;i<IDcolumns.length;i++) 
    { 
     switch(IDcolumns[i].innerHTML){ 
     case "yes": 
      //Just as example: 
      $(IDcolumns[i]).html('<img src="image.png" />'); 
      break; 
     case "no": 
      $(IDcolumns[i]).html('&nbsp;'); 
      break; 
    } 
} 

jsfiddle (표시/숨기기 열)의 다른 코드는 다른 것입니다.

+2

Jquery를 전혀 사용하지 않으면 모든 용도로 사용할 수 있습니다. 코드 크기가 줄어들고 코드가 간단 해집니다. –

+0

innerHTML을 설정할 때 특정 클래스를 추가 할 수 있습니다. 그리고 그 특정 클래스에 대해 innerHTML()을 설정하십시오. – Saksham

답변

2

이 HTML 구조에 따라 해결하는 방법은 여러 가지가 있습니다. 셀 텍스트 (무시 공백 및 기타 텍스트)이 포함 된 경우

$('.column-'+positionID + ':contains("yes")').html('<img src="image.png" />'); 
$('.column-'+positionID + ':contains("no")').html('&nbsp;'); 

:Contains가 일치 :이처럼 간단 뭔가를 할 수 귀하의 예를 다음

.

+0

이것이 각 기능보다 빠를 것이라고 생각합니까? – endeka

+0

이것은 정말로 좋고 .each보다 빠릅니다. 나는 그것을 좋아합니다. :) 그러나 어떤 값에 yes/no가 포함되어 있고 사용자가 엄격하게 yes/no만을 확인하려는 경우이 작업은 실패 할 수 있습니다. 결국 이것은 사용자의 요구 사항에 달려 있지만 이것은 정말 좋습니다. –

+0

@BhushanKawadkar "무엇을 의미하는 값이 yes/no이고 사용자가 엄격하게 yes/no만을 확인하고 싶다면 실패 할 수 있습니다"라는 의미는 무엇입니까? – endeka

1

당신은 여기에 jQuery를 사용할 수 있습니다

$('.column-'+positionID).each(function{ 
    var html = $(this).html(); 
    if(html == "yes") 
     $(this).html('<img src="image.png" />'); 
    else if(html == "no") 
     $(this).html('&nbsp;'); 
}); 
+0

jQuery'$ (this)'에서 동일한 요소를 다시 쿼리하는 것을 피하십시오. 임시 변수를 사용하십시오. –

+0

@TrueBlueAussie Tnx 코드입니다. 편집 후 http://jsfiddle.net/4MJjU/1/. 그러나 각 기능이 가장 빠른 해결책이 아니라고 읽었습니다. – endeka

관련 문제