2013-12-17 4 views
1

데이터 속성의 값을 결정하여 지정된 클래스에서 작업을 실행하려고합니다. 내가 겪고있는 문제는 속성 클래스/selector를 찾을 수 없다는 것입니다. 속성 선택자를 얻는 방법을 모릅니다.클래스 또는 ID를 보유하고있는 속성을 찾는 방법은 무엇입니까?

jQuery .find, .closest 등은 더 이상 그 클래스에 있지 않지만 오히려 익숙하지 않은 [object Object]를 가져 오는 것을 볼 수 있기 때문에 효과가 없습니다.

위의 사항에 대한 도움이 필요하십니까?

(function() { 
    var currentDate = $.datepicker.formatDate('DD,d MM yy', new Date()); 
    if ($(".post-title").data('date') < currentDate) { 
     // console.log($(this)); 
     $(this).css({ 
      "opacity": "0.5", 
       "border": "2px solid red" 
     }); 
    } 
})(); 
+0

어쩌면 약간의 삶의 예가 될까요? –

+2

참고 : .data ('date')는 날짜가 아닌 문자열입니다. 이것을 날짜 객체와 비교하면 작동하지 않습니다. –

+1

'this'가 특정'.post-title' 요소를 참조하도록하려면이 클래스의 요소가 두 개 이상이면'each' 루프를 사용해야합니다. –

답변

0

만약의 경우가있을 수 있다면 당신은 각 루프를 사용할 필요가

을 일하지 문자열을 비교한다 each을 사용하면 내부에서 작업 할 수있는 폐쇄 기능을 제공합니다. 그러면 this은 (현재 일치하는 요소가 하나라도) 현재 jQuery 객체/요소를 참조합니다.

$('.post-title').each(function() { 
    if (new Date($(this).data('date')).getTime() < new Date().getTime()) { 
    $(this).css({ 
     opacity: 0.5, 
     border: '2px solid red' 
    }); 
    } 
}); 
+0

이것은 완벽하게, 매우 깨끗하고 중요한 부분입니다. 고맙습니다! – Kulerbox

1

문제는 post-title 요소를 참조하지 않습니다 this입니다 : 여기

내가 함께 일하고 있어요 코드입니다. 또한 날짜 비교 변경해야, 그것은 여러 요소

jQuery(function ($) { 
    var date = new Date(); 
    var today = new Date(date.getFullYear(), date.getMonth(), date.getDate()); 

    $(".post-title").each(function() { 
     var date = $.datepicker.parseDate('DD,d MM yy', $(this).data('date')); 
     if (date < today) { 
      // console.log($(this)); 

      $(this).css({ 
       "opacity": "0.5", 
        "border": "2px solid red" 
      }); 
     } 
    }) 

}) 

하지

jQuery(function ($) { 
    var date = new Date(); 
    var today = new Date(date.getFullYear(), date.getMonth(), date.getDate()); 

    var date = $.datepicker.parseDate('DD,d MM yy', $title.data('date')); 
    if (date < today) { 
     $title.css({ 
      "opacity": "0.5", 
       "border": "2px solid red" 
     }); 
    } 
}) 
+0

고맙습니다. – Kulerbox

+0

@ user3111851'new Date (string)'은 항상 잘 작동하지 않을 수도 있습니다. 클라이언트가 사용하는 로컬에서 –

관련 문제