2012-04-09 6 views
0

메서드() 이후 jquery ()을 사용하여 다음 HTML을 사용합니다. 일부 새 HTML을 사용합니다. 이것은 잘 작동하지만 지금은 특정 조건 (추가 클래스가 상위 TD에있는 경우)에서 after() 메서드를 적용하지 않고 올바른 jquery 선택기 구문을 파악하려고하는 상황이 발생합니다. 이 변경에 가장 적합한 jquery 선택자는 무엇입니까?

를 시작하는 데,이보다 구체적인를 확인하려면, 나는 다음과 같은 HTML이 :

<td class="fc-widget-content"> 
<div> 
     <div class="fc-day-number">1</div> 
     <div class="fc-day-content"> 
    </div> 
    </td> 

을 나는 다음과 같은 논리를 원하는 다음 직후

 <span class="addEventHidden" style="display: none;"> 
      <img src="/Content/Images/addEvent.gif"> 
     </span> 

:이 HTML을 고수 할 fc-day-number div. 나는이 일을 쉽게 할 수 있습니다

$('.fc-day-number').after(function() { 
    return "<span class='addEventHidden' style='display: none;'><img src='/Content/Images/addEvent.gif'></span>"; 
}); 

이 상단 DIV이 추가 클래스가있는 경우 어떤 경우에는 내가 후론() 메소드를 실행하지 않으 제외하고 잘 작동 : FC - 기타 -를 달

상단은 다음과 같습니다 그래서 만약 명령 다음에 이것을 적용

<td class="fc-widget-content"> 

을하지만 상단 TD는 다음과 같습니다 경우 :

<td class="fc-widget-content fc-other-month"> 

답변

2

시도 :

$('td.fc-widget-content:not(.fc-other-month) div.fc-day-number') 
    .after('<span class="addEventHidden" ... >'); 

예 명확성을 위해 줄 바꿈이 있습니다. <span class="addEventHidden" ... >을 legit html로 바꿉니다.

$('.fc-day-number').filter(function(){ 
    return $(this).closest('.fc-other-month').length === 0; 
}).after(function() { 
    return "<span class='addEventHidden' style='display: none;'><img src='/Content/Images/addEvent.gif'></span>"; 
}); 

을 아니면 div을 선택하는보다 구체적인 선택을 사용할 수 있습니다

0
$('.fc-widget-content .fc-day-number').not('.fc-other-month .fc-day-number').after(function() { 
    return "<span class='addEventHidden' style='display: none;'><img src='/Content/Imags/addEvent.gif'></span>"; 
}); 
+0

'fc-other-month'는 부모 클래스입니다. –

+0

fc-other-month는 fc-day-number와 동일한 수준의 클래스가 아니며, 그 위의 TD 클래스입니다. . 일부 문법을 고려해야한다고 가정합니다. – leora

-2
$(".fc-widget-content:not(.fc-other-month):parent(.fc-day-number) .fc-day-number"); 
+0

이것은'div'가 아니라'td'를 대상으로합니다. –

+0

[': parent'] (http://api.jquery.com/parent-selector/)는 그렇게 작동하지 않습니다. 나는 당신이': parent' 또는': has (.fc-day-number)'를 의미한다고 생각합니다. 어느 쪽이든 그럴 필요는 없습니다. ".fc-widget-content : .fc-other-month .fc-day-number'가 아닌''.fc-widget-content ''를 할 수 있습니다. –

-2

당신은 올바른 부모 divs의를 얻을 수 .filter를 사용할 수 있습니다.

$('.fc-widget-content:not(.fc-other-month) .fc-day-number').after(function() { 
    return "<span class='addEventHidden' style='display: none;'><img src='/Content/Images/addEvent.gif'></span>"; 
}); 

P. </td> 앞에 </div>을 잊어 버렸습니다.

+0

나는 투표하지 않았지만" 올바른 부모 "는 어색한 방법처럼 보입니다. 두 번째 해결 방법은 선택자에서 이중/작은 따옴표가 일치하지 않습니다. – Mathletics

+0

@ 1 학년은 단지 제안 이었지만 결코 최선의 아이디어라고 말한 적이 없었습니다. :-피 –

관련 문제