2012-12-18 6 views
0

숨겨진 요소가있는 특정 값을 확인하고 발견 된 경우 특정 메시지를 표시하는 방법을 찾아야합니다. 제 생각으로는 jQuery로 할 수 있다고 생각합니다. 그러나 그 일을하는 데 어려움을 겪고 있습니다 ...다른 요소의 값 읽기

다음은 간단한 코드입니다. 내가 클래스 outputHere

메시지는 내가 범위를 withing에있다 클래스 sku를 찾을 여부에 따라, 조건부와 TD에 메시지를 넣을 필요가 숨겨져있는 TR에, 중첩 테이블 내부의 .. .

SKU 값이 발견되면 I 출력을, 내가 항목 ID를 찾아, 그리고 어느 쪽도 발견되지 않으면, 나는 기본 메시지를 넣어하지 않을 경우 ...

<table> 
<tr> 
    <td> 
    <div class="outputHere">val</div> 
    </td> 
</tr> 
<tr> 
    <td> 
    <div> 
    <table class="nested"> 
    <tr> 
     <td> 
     <span class="sku">SKU number</span> 
     </td> 
    </tr> 
    </table> 
<tr> 
    <td> 
    </div> 

    </td> 
</tr> 
</table> 

약간 압도 ... 그것을

생각 다음과 같아야합니다.

(210)
$('.outputHere').each(function() { 
var $message = 
$(this).parents('table').closest('tr').find('span.sku'); 

if ($message) { 
    $(this).text($message); } else { 
    $(this).text('Default message'); 
}  
}); 

UPDATE 내가 다음 SKU의 값을 찾으 얼마나 내 SKU 셀 클래스 = "SKU"가 아니라 SKU 번호를 가지고 있지 않은 경우 어떤

?

<table> 
<tr> 
    <td> 
    <div class="outputHere">val</div> 
    </td> 
</tr> 
<tr> 
    <td> 
    <div> 
    <table class="nested"> 
    <tr> 
     <td> 
     <span class="label">SKU:</span> 
     </td> 
     <td>sku_value</td> 
    </tr> 
    </table> 
<tr> 
    <td> 
    </div> 

    </td> 
</tr> 
</table> 

답변

1
$('.outputHere').each(function() { 
    var $this = $(this); 
    var $span = $this.closest('tr').next('tr').find('span.sku'); 

    if($span.html().length) { 
     $this.text($span.html()); 
    } else { 
     $this.text('Span Not found !!'); 
    }  
}); 

Check Fiddle

업데이트] 뿐인 그런 경우라면

내가 사용하는 것이이 : 선택

$('.outputHere').each(function() { 
    var $this = $(this); 
    var $span = $this.closest('tr').next('tr').find('.label:contains(SKU)'); 

    if($span.html().length) { 
     var num = $span.html().split(':')[1]; 
     $this.addClass('changed').text(num); 
    } else { 
     $this.text('SKU Not found !!'); 
    }  
});​ 

UPDATED FIDDLE

+0

좋습니다, 감사합니다. 내가 옳은 길을 가고 있었다는 것을 알았습니다.) 코드를 자세히 보았을 때 원래 생각했던 것보다 나았습니다 ... 나는 업데이트를 게시했습니다 ... 죄송합니다. – santa

+0

@ 산타 .. 업데이트 된 게시물 확인 –

0

(가 보이더라도 과도한 조금) HTML 구조는 질문처럼 그때 사용하는 경우

$('.outputHere').each(function() { 
    var $message = $(this).closest('table').find('span.sku'); 

    if ($message.length) { 
     $(this).text($message.text()); 
    } else { 
     $(this).text('Default message'); 
    }  
}); 

데모에서 http://jsfiddle.net/gaby/kjcXH/

+0

내가 가까이 코드를 보았고, 그 다음 내가 원래 생각 더 나쁜을 포함 ... 업데이트를 게시했습니다 ... 죄송합니다. – santa