jQuery - 输入不在页面上显示的文本属性

时间:2016-04-01 20:32:47

标签: javascript jquery

我正在使用jQuery为动态表单生成输入元素。在大多数情况下,事情进展顺利,但我在设置元素的文本属性时遇到问题...具体来说,文本值不会在页面上呈现,尽管它们看起来是正确的控制台的元素选项卡。

例如......

function generateInput(siteNumber, x){

    adult = $("<input/>", {
            type: 'radio',
            id: 'adult'+siteNumber+''+x+'',
            name: 'age'+siteNumber+'['+x+']',
            value: 'adult',
            text: 'Adult'
            });

    juvenile = $("<input/>", {
               type: 'radio',
               id: 'juvenile'+siteNumber+''+x+'',
               name: 'age'+siteNumber+'['+x+']',
               value: 'juvenile',
               text: 'Juvenile'
               });

    return adult.append(juvenile);

};

$(document).on("change", ".number_select", function(){
    siteNumber = $(this).parent().attr('data-site_number');
    numberFound = $(this).val();

    for(x = 1; x <= numberFound; x++){
        this['inputArray' + siteNumber].push(generateInput(siteNumber, x));
     };

     $(this).parent().append(this['inputArray' + siteNumber]);
});

尽管控制台显示

<input type="radio" id="adult11" name="age1[1]" value="adult">Adult</input>
<input type="radio" id="juvenile11" name="age1[1]" value="juvenile">Juvenile</input>

这些文本元素没有出现在页面上 - 两个单选按钮在那里,没有文字。如果有人能帮我理解为什么会这样,以及我能做些什么来解决它,我将不胜感激。非常感谢!

EDITING 至于adeneo的观点,输入标签是自动关闭的,因此没有.text()的骰子。但是,我也试过.prepend()/。append(),同样地,没有做过......

adult = $("<input/>", {
     type: 'radio',
     id: 'adult'+siteNumber+''+x+'',
     name: 'age'+siteNumber+'['+x+']',
     value: 'adult'
     }).prepend('Adult');

juvenile = $("<input/>", {
     type: 'radio',
     id: 'juvenile'+siteNumber+''+x+'',
     name: 'age'+siteNumber+'['+x+']',
     value: 'juvenile'
     }).prepend('Juvenile');

1 个答案:

答案 0 :(得分:1)

我会用你想要的文字创建一个标签,然后将输入添加到标签元素:

adult = $("<label>Adult</label>").prepend($("<input/>", {
        type: 'radio',
        id: 'adult'+siteNumber+''+x+'',
        name: 'age'+siteNumber+'['+x+']',
        value: 'adult'});