2012-10-28 2 views
0

jquery 데이터 테이블이 있고 그 데이터 테이블에 각 행에 행 세부 정보를 볼 수있는 열이 있습니다. datatables row_details 것은 필요 없습니다.div가 이미 존재하지 않는 한 jquery do를 수행 한 다음 바꾸기

'보기'를 클릭하면 텍스트가 숨기기로 변경되고 행 _ ###이있는 div가 콘텐츠 본문에 추가됩니다. 행이 표시되어있는 동안 동일한 버튼을 클릭하면 해당 행이 숨겨집니다. 또한 다른 사람이 다른 행에 대한보기를 클릭하면 이전 행의 텍스트가 hide로 변경되고 div 숨김이 표시되고 방금 클릭 한 행이 표시되어야합니다. 나는 일에 대한 세부 사항이 이미 표시되어 또 다른 '보기'를 클릭하면

$("a[class^=view]").click(function() { 
    var id = $(this).attr('class').match(/\d{1,}/); 

    if($("div[id^=report_]").size() >= 1) { 
    // Slide up, remove 
      // Change text back to view  
    } else { 
      // Append and change text to Hide 
      } 
}); 

, 그것은 현재 DIV 안에 새로운 사업부를 추가하고 같은 새로운 사업부를 추가 : 여기

는 내가 지금까지 무엇을 가지고 내용 본문 .. 분명히 내가 어딘가 내 논리가 잘못 찾고있어 효과가 아닙니다. 어떤 아이디어?

+1

크기 ', 더 이상 사용되지 않습니다. 'length' 속성과 같은'length() '를 사용하십시오. 길이 (length) {...}' – elclanrs

+1

'/ \ d {1,} /'을'/ \ d +/ –

+0

이것은 다음과 같습니다 : 1) 요소가 없으면 추가하고 텍스트를 "Hide"로 변경하십시오. 2) 동일한 "보기"링크를 클릭하면 요소를 제거하고 텍스트를 다시 보도록 변경하십시오. 3) 요소가있는 경우 해당 요소를 제거하고 관련 텍스트를 다시보기로 변경하고 새 텍스트를 추가하고 텍스트를 숨기기로 변경합니다. 추가/제거 할 물건을 얻을 수 있지만 새 div 추가하면 클래스의 0 개 이상의 요소를 검사하는 동일한 조건부에서 자동으로 제거 된^= report_ – Steve

답변

0

알 수 있습니다. 다소 지저분하지만 작동합니다. 다른 방법이 있으면 관심이 있습니다. 요소가 이미 난 ... 그의 아이를 찾고, 부모 요소에 jQuery의 발견을 사용과 같이 존재하는 경우

$("a[class^=view]").click(function() { 
    var id = $(this).attr('class').match(/\d+/); 

    if($(this).text() == "Hide") { 
     $(this).text("View"); 
     $("#report").html(null); 
    } else { 
     $("a[class^=view_]").each(function(){$(this).text("View");}); 
     $(this).text("Hide"); 
     $("#report").html("<div id='report_"+id+"'>viewing report "+id+"</div>").slideDown(); 
    } 
}); 
+0

이전에 제거 된 것들을 원한다면 활성화 된 이전 버튼의 텍스트도 변경해야합니다. 버튼에 '활성'클래스를 추가하고 이전 버튼을 쉽게 찾을 수 있도록합니다. – charlietfl

0

알고 : 여기에 솔루션입니다 당신은`사용하지 않아야

if($('#parent_container').find('#child_element').length>0){ 
    //element(s) exists 
}else{ 
    //element(s) not found 
} 
관련 문제