2012-08-02 6 views
0

에 업데이트되지 않았습니다. 변수 "a"의 값을 레이블 태그의 클래스 속성으로 업데이트하려고하면 코드에 작은 문제가 있습니다. 누구든지 나를 도울 수 있습니까? 여기에 내 코드 여기변수의 값이 레이블 태그

<html> 
<head> 
<style> 
label.visible {visibility:visible} 
label.hidden {visibility:hidden} 
</style> 
<script type="text/javascript"> 
var a; 
function doset() 
{ 
a="hidden"; 
alert(a); 
return a; 
} 
</script> 
</head> 
<body> 
<form> 
<label class=visible>Hello</label> 
<button onclick="doset()">v</button><br> 
<label class=a>Hello1</label><br> 
<label class=a>Hello2</label><br> 
<label class=a>Hello3</label><br> 
<label class=a>Hello4</label><br> 
<label class=a>Hello5</label><br> 
</form> 
</body> 
</html> 

는 바이올린입니다 : http://jsfiddle.net/M8CXN/

+0

나는 당신이 성취하려는 것을 확신하지 못합니다. 여기서하고있는 일은 요소의 클래스를 변경하지 않고 전역 변수를 덮어 쓰는 것입니다. – Utkanos

+0

html에 관해서는 클래스 이름을 따옴표로 묶으십시오. –

+0

그 경고는 & quot; 숨김 & quot;을 반환하고 그 값으로 무엇을하고 싶습니까? 당신은 또한'onclick = "doset(); false를 반환;"'페이지가 다시로드되지 않도록해야합니다. –

답변

1

class=a

(jQuery 사용)이 수행 하지 바인드 자바 스크립트 전역 변수 a에 클래스 이름; 그들은 다른 맥락에서 다른 것들입니다.

클래스를 조작하려면 DOM을 통해 클래스를 조작해야합니다. 가장 간단한 방법은 컨테이너를 사용하는 것입니다. 양식이 더 이상 제출하지 않기 때문에 당신이 AJAX를 제공하지 않는 후 모든 경우

<button onclick="doset(); return false;">v</button><br> 
0

모든 관련 라벨을 같은 클래스 줄 경우

<label class="myclass">Hello1</label><br> 
<label class="myclass">Hello2</label><br> 
<label class="myclass">Hello3</label><br> 

그런 다음이 대상을 추가하거나 클래스를 제거 할 수 있습니다 당신이 원하는 :

$('.myclass').addClass('hidden'); 
$('.myclass').removeClass('hidden'); 

하거나 :

,
$('.myclass').hide(); 
$('.myclass').show(); 

+0

질문에 jQuery 태그가 지정되지 않았습니다. – Jamiec

+0

Nope. DOM 조작을위한 매우 유용한 라이브러리입니다 :) – Flash

+0

질문이지만 jQuery 태그가 지정되지 않으면 jQuery 응답을 제공하지 않아야합니다. 단지 $ 0.02 – Jamiec

0
<html> 
<head> 
<style> 
label.visible {visibility:visible} 
label.hidden {visibility:hidden} 
</style> 
<script type="text/javascript"> 

function setLabelsClass(){ 
    var form = document.getElementsByTagName('form'); 
    var labels = form[0].getElementsByTagName('label'); 
    for(var i=0,len=labels.length;i<len;i++){ 
     var lbl_class = labels[i].getAttribute('class'); 
     if(lbl_class==="") labels[i].setAttribute('class','hidden'); 
    } 
} 
</script> 
</head> 
<body> 
<form> 
<label class=visible>Hello</label> 
<button onclick="setLabelsClass(); return false;">v</button><br> 
<label>Hello1</label><br> 
<label class="">Hello2</label><br> 
<label class="">Hello3</label><br> 
<label class="">Hello4</label><br> 
<label class="">Hello5</label><br> 
</form> 
</body> 
</html>​ 

안 좋은 방법으로 호출

function doset() { 
    a="hidden"; 
    document.getElementById("myItems").style.visibility = a; 
    alert(a); 
} 

<div id="myItems"> 
    <label>Hello1</label><br> 
    <label>Hello2</label><br> 
    ... 

. 두 번째 생각에 나는 당신이 내가 여기서 말하고있는 것을 이해하지 못할 것 같은 느낌이 들지만 당신은 그것에 도달 할 것입니다.

관련 문제