Javascript 为什么单选按钮的文本无法显示?
为什么在运行以下代码时,单选按钮的文本无法呈现:Javascript 为什么单选按钮的文本无法显示?,javascript,jquery,html,Javascript,Jquery,Html,为什么在运行以下代码时,单选按钮的文本无法呈现: <div id='sctices'></div> var result = [ {"id":"G84","value":"Mman, J"}, {"id":"G95","value":"Ekara, G"}, {"id":"G98","value":"Gedala, PS"} ]; var key,
<div id='sctices'></div>
var result = [
{"id":"G84","value":"Mman, J"},
{"id":"G95","value":"Ekara, G"},
{"id":"G98","value":"Gedala, PS"}
];
var key, count = 0;
for(key in result)
{
var btnId = result[key].id;
var btnValue = result[key].value;
var radio = $("<input></input>",
{
type: 'radio',
name: 'gtice',
class: 'radio-default',
checked: false,
value: btnValue,
id: btnId,
text: btnValue
});
//radio.text(btnValue);// did not work
radio.insertAfter("#sctices");
radio.wrap("<div></div>");
}
var结果=[
{“id”:“G84”,“value”:“Mman,J”},
{“id”:“G95”,“value”:“Ekara,G”},
{“id”:“G98”,“value”:“Gedala,PS”}
];
var键,计数=0;
用于(输入结果)
{
var btnId=result[key].id;
var btnValue=结果[key]。值;
var无线电=$(“”,
{
键入:“收音机”,
名称:“gtice”,
类:“无线电默认值”,
勾选:假,
值:btnValue,
id:btnId,
文本:BTN值
});
//radio.text(btnValue);//不起作用
radio.insertAfter(“#sctices”);
收音包(“”);
}
请帮忙。奇怪的是,文本出现在生成的源代码中。谢谢这是因为
收音机
输入没有显示任何文本。一般做法是在标签旁边使用标签
元素。尝试添加以下行:
var $label = $("<label></label>").text(btnValue).prepend(radio);
var$label=$(“”).文本(btnValue).prepend(radio);
这是我的版本
在我看来,源头看起来更干净
var结果=[
{
“id”:“G84”,
“值”:“Mman,J”},
{
“id”:“G95”,
“值”:“Ekara,G”},
{
“id”:“G98”,
“值”:“Gedala,PS”}
];
var键,计数=0;
用于(输入结果){
var btnId=result[key].id;
var btnValue=结果[key]。值;
变量$div=$('');
变量$radio=$(“”{
键入:“收音机”,
名称:“gtice”,
类:“无线电默认值”,
勾选:假,
值:btnValue,
id:btnId,
});
var$label=$(“”,{'for':btnId}).text(btnValue);
$(“#sctices”).append($div.append($radio).append($label));
}
结果:
<div id="sctices">
<div>
<input type="radio" name="gtice" class="radio-default" value="Mman, J" id="G84">
<label for="G84">Mman, J</label>
</div>
<div>
<input type="radio" name="gtice" class="radio-default" value="Ekara, G" id="G95">
<label for="G95">Ekara, G</label>
</div>
<div>
<input type="radio" name="gtice" class="radio-default" value="Gedala, PS" id="G98">
<label for="G98">Gedala, PS</label>
</div>
</div>
马恩,J
埃卡拉,G
盖达拉私人有限公司
或以另一种方式询问,如何使文本显示在这些无线电输入的背景下?嗯,输入是一个无效或自动关闭的元素;它没有结束标记,因为它不能包含任何文本或子元素。将文本放入标签
标记中,并使用for
将标签
与输入
相关联(或者,在纯JS中,使用标签
元素的.htmlFor
(我想))属性。@DavidThomas:谢谢,但代码为var radio=$(“…它仍然不起作用否,因为input
元素不能包含子节点(除了textarea
,它可以接受文本(但不是子元素)。比我的更详细;),但我要添加for=“btnId”
$(“”,{'for]:btnId})。text().prepend()
@davidthoma是一个很好的观点,尽管值得注意的是,如果标签
元素将收音机输入
包裹起来,浏览器会自动推断出命中区域。哦,我实际上没有注意到输入
被标签
包裹起来。我和我的恶作剧方式…=)啊-前置机把收音机包起来了。。。在我看来,是否存在间距问题
<div id="sctices">
<div>
<input type="radio" name="gtice" class="radio-default" value="Mman, J" id="G84">
<label for="G84">Mman, J</label>
</div>
<div>
<input type="radio" name="gtice" class="radio-default" value="Ekara, G" id="G95">
<label for="G95">Ekara, G</label>
</div>
<div>
<input type="radio" name="gtice" class="radio-default" value="Gedala, PS" id="G98">
<label for="G98">Gedala, PS</label>
</div>
</div>