2017-12-18 3 views
-2

ich einige Radio-Buttons und will den Wert des auf das Mutterelement (Label) ausgewählt hinzufügen, aber das funktioniert nicht:Wert als Klasse

jQuery(document).ready(function($){ 
    var columns = $(".acf-field-59e775b8e5977 .acf-input .acf-button-group label.selected input").val(); 
     if(columns == "4"){ 
     $(this).parent().addClass("four"); 
    } 
}); 

Dies ist das Feld:

<label class="selected"><input name="acf_1" value="4" checked="checked" type="radio">4/12</label> 
+3

Klassennamen können nicht mit Zahlen beginnen. – SLaks

+0

Kein Problem, nur ein Beispiel. –

+0

@SLaks https://stackoverflow.com/questions/448981/which-characters-are-valid-in-css-class-names-selectors – j08691

Antwort

2

Basierend auf dem Code, den Sie bieten, gehen sie wie folgt: -

jQuery(document).ready(function($){ 
    var obj = $("input[name='acf_1']"); 
    if(obj.val() == 4){ 
    obj.parent('label').addClass("four"); 
    } 
}); 

Arbeits Snippet: -

jQuery(document).ready(function($){ 
 
    var obj = $("input[name='acf_1']"); 
 
    if(obj.val() == 4){ 
 
    obj.parent('label').addClass("four"); 
 
    } 
 
});
.four{ 
 
    font-size:20px; 
 
    color:green; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
This is the field: 
 

 
<label class="selected"><input name="acf_1" value="4" checked="checked" type="radio">4/12</label>

+0

Für den Grund funktioniert es nicht in meinem WordPress-Backend, aber ja, danke. –

1

Wie SLaks erwähnt, können Klassennamen nicht mit Zahlen beginnen. Sie sagen in den Kommentaren, dass die Zahlen für den Klassennamen nur ein Beispiel sind, aber wenn ich Ihren Code in JSFiddle mit "test" statt "4" teste, funktioniert es.

https://jsfiddle.net/mn7dk5h2/

jQuery(document).ready(function($){ 
    var columns = $("input").val(); 
    alert(columns); 
    if(columns == "test"){ 
      alert('marco') 
     $(this).parent().addClass("test"); 
    } 
}); 

und

<label class="selected"><input name="acf_1" value="test" checked="checked" type="radio">4/12</label> 

auf dem Code So basiert Sie zur Verfügung gestellt haben, scheint das Problem, dass der Klassenname mit einer Zahl beginnt zu sein.