none
으로 설정된 디스플레이가있는 클래스가 있습니다. 자바 스크립트에서 지금 inline
으로 설정하고 싶습니다. getElementById
인 ID로이 작업을 수행 할 수 있다는 것을 알고 있지만 클래스를 사용하여 가장 명확한 방법은 무엇입니까? ? 그것을 할 수자바 스크립트에서 CSS의 CSS를 변경 하시겠습니까?
답변
가장 좋은 방법과 같이, 숨겨진 클래스를 가지고있다 :
.hidden { display: none; }
는 그 후, 자바 스크립트의 모든 요소에 className
속성이 있습니다. 해당 문자열을 조작하여 hidden
클래스의 발생을 제거하고 다른 것을 추가 할 수 있습니다.
조언이 하나 있습니다. jQuery를 사용하십시오. 그런 종류의 물건을 다루기가 더 쉬워지면 다음과 같이 할 수 있습니다.
$('#element_id').removeClass('hidden').addClass('something');
Pfft! jQuery에 대한 Javascript가 아닌 것은 무엇입니까? ;-) – changelog
jQuery가 포함되지 않은 경우 jQuery 관련 코드가 일반 바닐라 JS에서 작동하지 않는다는 사실? "Use jQuery"는 JS에 관한 모든 질문에 항상 유효한 대답은 아닙니다. 일부 사람들은 그것을 듣기가 싫증이 났을 것입니다. – cHao
일반적으로 질문에 언급되지 않은 경우 귀하의 대답은 jQuery를 소개하지 않아야합니다. 정말로 jQuery를 포함 시키려면 바닐라 자바 스크립트로 대답하고 "... 그러나 jQuery에서 다음과 같이 보일 것입니다 :" – meagar
이런 뜻입니까?
var elements = document.getElementsByClassName('hidden-class');
for (var i in elements) {
if (elements.hasOwnProperty(i)) {
elements[i].className = 'show-class';
}
}
그런 다음 CSS
.hidden-class { display: none; }
.show-class { display: inline; }
'document '에 대해'getElementsByClassName'과 같은 메소드가 없다. – Skizit
Hrm, [이전 IE] (http : /www.quirksmode.org/dom/w3c_core.html#fivemethods). 솔직히 jQuery와 같은 것을 권하고 싶지만 제안 할 때마다 덤벼 드는 것이 좋습니다. – Znarkus
@Zharkus : 라이브러리를 부차적 인 것으로 사용하는 것을 추천하거나 포스트 스크립트를 요구하지 않는 답변에 대해서는 아무런 해를 끼치 지 않습니다 (bashers 중 하나라고합니다). 그것은 누군가가 비 jQuery 질문에 대한 답변을 제공하는 것입니다. @Skizit : 라이브러리 ilke [jQuery] (http://jquery.com), [Prototype] (http://prototypejs.org), [YUI] (http://developer.yahoo.com/yui/) [Closure] (http://code.google.com/closure/library) 또는 [기타 여러 곳] (http://en.wikipedia.org/wiki/List_of_JavaScript_libraries)을 사용하면 브라우저 차이를 원활하게 처리 할 수 있습니다. 유용한 유틸리티를 많이 제공하십시오. –
getElementsByClassName
을 사용하면 요소 배열을 얻을 수 있습니다. 그러나 이것은 구형 브라우저에서는 구현되지 않습니다. 이 경우 getElementsByClassName
은 undefined
이므로 the code has to iterate through elements and check which ones have the desired class name입니다.
$('.theClassName').css('display', 'inline')
당신이 만들 수 있습니다
이를 위해 당신은 등
jQuery를에가이 같은 한 - 라이너와 함께 할 수있는 jQuery를, Mootools의 프로토 타입과 같은 자바 스크립트 프레임 워크를 사용한다 새로운 스타일 규칙.
var cssStyle = document.createElement('style');
cssStyle.type = 'text/css';
var rules = document.createTextNode(".YOU_CLASS_NAME{display:hidden}");
cssStyle.appendChild(rules);
document.getElementsByTagName("head")[0].appendChild(cssStyle);
$("#YOUR_DOM_ID").addClass("YOUR_CLASS_NAME");
당신은/악용이 기능을 다시 작성하실 수 있습니다 :
function getStyleRule(ruleClass, property, cssFile) {
for (var s = 0; s < document.styleSheets.length; s++) {
var sheet = document.styleSheets[s];
if (sheet.href.endsWith(cssFile)) {
var rules = sheet.cssRules ? sheet.cssRules : sheet.rules;
if (rules == null) return null;
for (var i = 0; i < rules.length; i++) {
if (rules[i].selectorText == ruleClass) {
return rules[i].style[property];
//or rules[i].style["border"]="2px solid red";
//or rules[i].style["boxShadow"]="4px 4px 4px -2px rgba(0,0,0,0.5)";
}
}
}
}
return null;
}
- 는 "모든 스타일 시트를 부착 패스를 스캔을 index.css"
- "그렇지 않으면 뭔가 같은 세 번째 인수로" ruleClass에 시작 '.'이 (가) 있습니다.
- (규칙 [I] .selectorText & & 규칙 [I] .selectorText.split (''). 같이 IndexOf (속성)! == -1) 조건 개선 여기서 https://stackoverflow.com/a/16966533/881375 찾으면
- 을 잊지 말고 CSS 속성을 통해 자바 스크립트 문법을 사용하십시오. 상자 - 그림자 vs.페이지 흐름을 망칠 수 있습니다 다시 볼 일을하기 위해 "인라인 표시"를 사용하여 O를
이 비록
마침내, 좋은 답변 :) 나는 그것을 편집하고 "값"입력을 추가하여 즉시 규칙을 변경했습니다. –
긴, 여기에 몇 가지 발언을 사라 boxShadow. 일부 요소는 인라인으로 표시되고 다른 요소는 블록으로 표시됩니다. 따라서 .hidden 스타일 만 정의하고 제거하면 다시 볼 수 있습니다.
o 숨기기 방법 : 요소를 숨기는 두 가지 방법이 있습니다. 하나는 위에서 언급 한 "display : none"이며 기본적으로 요소가없는 것처럼 동작하게하고, "visibility : hidden 요소를 보이지 않게 렌더링하지만 그것이 차지하는 공간을 유지합니다. 숨기려는 항목에 따라 요소를 표시하거나 숨길 때 다른 요소가 이동하지 않으므로 표시 여부가 더 나은 선택 일 수 있습니다.
o 클래스 추가/제거 vs. CSS 규칙 조작 : 결과가 매우 다릅니다. CSS 규칙을 조작하면 특정 CSS 클래스가있는 모든 요소가 영향을받습니다. 현재와 미래에는 DOM에 동적으로 추가 된 새로운 요소도 숨겨집니다. 반면에 클래스를 추가/제거 할 때 새로이 추가 된 요소에는 클래스가 추가/제거되었습니다. 그래서 CSS를 조작하면 동적으로 생성 된 DOM 요소에 더 나은 선택이 될 수 있지만 정적 HTML에서는 클래스 추가/제거가 잘 작동한다고 말하고 싶습니다.
- 1. 자바 스크립트에서 CSS를 출력하고 콜백하기
- 2. 자바 스크립트를 기반으로 CSS를 변경 하시겠습니까?
- 3. file_field의 CSS를 변경 하시겠습니까?
- 4. 자바 스크립트에서 CSS 스타일을 변경 하시겠습니까?
- 5. 자바 스크립트에서 이미지 색상 변경
- 6. 자바 스크립트에서 confirm()의 기본 제목을 변경 하시겠습니까?
- 7. 자바 스크립트에서 함수를 재설정 하시겠습니까?
- 8. CSS의 동적 마진 크기 변경
- 9. CSS가 이미 적용된 TextField에서 CSS를 변경 하시겠습니까?
- 10. CSS의 위치 변경/문제
- 11. 자바 스크립트에서 몽고 ID를 생성 하시겠습니까?
- 12. 자바 스크립트에서 드롭 다운 값 변경
- 13. 자바 스크립트에서 Liferay Portlet Title 변경
- 14. 자바 스크립트로 이미지 변경 하시겠습니까?
- 15. 자바 스크립트에서 html 값을 설정 하시겠습니까?
- 16. 자바 스크립트에서 워드 문서에 액세스 하시겠습니까?
- 17. 자바 스크립트에서 프레임 세트를 반복 하시겠습니까?
- 18. 자바 스크립트에서 PHP 배열을 사용 하시겠습니까?
- 19. 자바 스크립트에서 winapi 내보내기 함수를 호출 하시겠습니까?
- 20. HTML 텍스트를 자바 스크립트에서 선택 하시겠습니까?
- 21. 자바 스크립트에서 이미지에 마커를 추가 하시겠습니까?
- 22. 자바 스크립트에서 함수의 변수에 액세스 하시겠습니까?
- 23. 자바 스크립트에서 PHP 스크립트를 실행 하시겠습니까?
- 24. 자바 스크립트에서 브라우저 확인을 종료 하시겠습니까 - 어떻게?
- 25. 자바 스크립트에서 CPU 코어 수를 확인 하시겠습니까?
- 26. 자바 스크립트에서 이름 값 쌍을 제출 하시겠습니까?
- 27. 프론트 엔드 자바 스크립트에서 인쇄 하시겠습니까?
- 28. 자바 스크립트에서 프롬프트 편집
- 29. CSS를 받기 전에 DOM을로드 하시겠습니까?
- 30. 자바/JQUERY : .CSS의 화소 값
향후 참조를 위해, 나는 그것이 당신이 원하는 것과 매우 흡사하다고 생각하기 때문에 : http://www.hunlock.com/blogs/Totally_Pwn_CSS_with_Javascript – Zirak