2012-06-22 2 views
0

사용자가 선택한 드롭 다운 메뉴 선택에 따라 양식의 요소 클래스를 숨기거나 표시하려고합니다. 참조 : http://jsfiddle.net/3FmHK/2/js로 클래스의 모든 요소 수정하기

저는 js를 처음 사용하며 두 가지 문제점이 있습니다. 그래서 분명히 나와 함께 있습니다.

1) div id로 수정하므로 첫 번째 요소 만 변경됩니다 (어떤 이유에서든이 피들에서는 변경되지 않지만 프로젝트에서는 변경됩니다). 그러나 클래스의 모든 요소가 수정되기를 원하고 그 작업을 수행 할 수 없었습니다. 그렇다면 하나의 요소가 아닌 전체 클래스의 style = "display"를 어떻게 수정합니까?

2) 새로 추가 된 요소에 대해 제거가 작동하지 않습니다. 양식이 프로젝트에서 값과 함께 반환되면 제거 할 수 있습니다. 방화 광구를 사용하면 GET return 생성 요소와 사용자가 추가 한 요소가 동일하게 보입니다. 새로 추가 된 요소에 대해 제거 기능이 작동하지 않는 이유는 무엇입니까?

+0

jQuery를 사용 하시겠습니까? 귀하의 바이올린에서는 jQuery가 끝날 때까지 무료입니다. 내가 할 수있는 것을보기 전에 어떤 방법을 원하고 있는지 확인하고 싶습니다. –

+0

jQuery는 전체 프로젝트의 다른 많은 장소에서 사용되지만 새로운 것이기에 바이올린으로 이어지는 Google 메소드는 자바 스크립트로만 이루어졌습니다. (특히 잘 쓰지는 않겠다.) –

+0

사이드 노트, 필자가 게시 한 바이올린을 수정하면 js 또는 jQuery의 모든 기능을 이해할 수 없으므로 엄청날 것이다. 올바르게 구현하십시오. –

답변

2

. .on() 기능을 사용하여 새로 생성 된 요소에 대한 작업을 바인딩하고 클래스 선택기를 사용하여 모든 클래스를 .hide()하고 현재 선택된 ID를 .show()로 사용할 수 있습니다.

그것은 다음과 같이 보일 것입니다 :

jQuery(document).ready(function() { 
    jQuery(document).on('click', '.classname', function() { 
     jQuery('.' + jQuery(this).attr('class')).hide(); 
     jQuery(this).show(); 
     // Or you can use the following to show a specific ID element. 
     //jQuery('#idtoshow').show(); 
    )}; 
}); 

이 클래스 이름을 가진 모든 요소를 ​​숨 깁니다. 스크립트 전에 jQuery 라이브러리를 포함시켜야합니다. 여기에서는 show와 hide 만 사용하고 있지만 .click뿐 아니라 .on으로 작업을 바인딩하는 한 .remove()를 사용할 수 있습니다. 새로 생성 된 요소에 바인딩하려면 .on이 필요합니다. 이 도움이

http://api.jquery.com/on/

희망.

0

보십시오 : 당신이 할 수있는 경우에 나는 이것에 대한 jQuery를 사용하는 것이 좋습니다

$(this).parent('div').first().remove(); 
+0

은 프로젝트 나 바이올린에서 저에게 효과가 없었습니다. –

+0

음, 심지어 $ (this) .remove(); 바이올린에서 작동하지 않는 브라우저에서보십시오. – Maresh

관련 문제