Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么单选按钮的文本无法显示?_Javascript_Jquery_Html - Fatal编程技术网

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>