我有一个单选按钮和两个选项("yourself"/"a colleague")
.
在这种形式中,我添加了一个button
用于翻译。
当我点击按钮时,我想将单选按钮的文本改为法语("Vous-même" / "Un collegue")
。
我只需要jQuery行,允许我做这个改变。
我试试这个:
NWF $('#'+UserTypeID).find("input:checked").val("Vous-même");
修改值,但不修改文本。
NWF $('#'+UserTypeID).find("input:checked").text("Vous-même");
生成错误,因为这一行完全隐藏了单选按钮
谁有办法?
如果你有这样的html:
<label for="foo">Foo</label>
<input type="radio" id="foo" name="type"/>
<label for="bar">Bar</label>
<input type="radio" id="bar" name="type"/>
,那么你可以使用:
NWF$('#'+UserTypeID).find('[for="foo"]').text("Vous-même");
你可以这样做,例如:
label
能够改变单选按钮对应的文本。
data
属性保存您的数据,您必须在每个按钮上切换单击。
$(document).ready(function(){
$('.translate').click(function(){
$('input[type=radio][name=person]').each(function( index ) {
var current_element=$(this);
var done=false;
var traductions=[current_element.data('traduction-fr'),current_element.data('traduction-en')];
var current_value=$("label[for='" +current_element.attr("id")+ "']").text();
$.each(traductions, function( index, value ) {
if(current_value!= value && !done){
$("label[for='" + current_element.attr("id")+ "']").text(value); done=true;
}
});
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<label for="option1">yourself</label>
<input type="radio" name="person" id="option1" value="person_1" data-traduction-fr="Vous-même" data-traduction-en="yourself"><br>
<label for="option2">a colleague</label>
<input type="radio" name="person" id="option2" value="person_2" data-traduction-fr="Un collegue" data-traduction-en="a colleague"><br>
<input type="button" value="Translate" class="translate">
可以使用jquery map函数
<label for="option1" data-selected="en" data-en="yourself" data-fr="Vous-même">yourself</label>
<input type="radio" name="person" id="option1"/>
<label for="option2" data-selected="en" data-en="a colleague" data-fr="Un collegue">a colleague</label>
<input type="radio" name="person" id="option2"/>
使用以下代码
var $labels = $("label[for]");
$('input').map(function(){
var label = $labels.filter('[for="'+this.id+'"]');
var lang =label.attr("data-selected"),
enText = label.attr("data-en"),
frText = label.attr("data-fr");
if("en" == lang){
label.text(frText);
label.attr("data-selected", "fr")
}else{
label.text(euText);
label.attr("data-selected", "en")
}
});