Добавление текста в элемент управления флажком в JQuery

У меня есть этот флажок, который я пытаюсь создать в JQuery

<input type="checkbox" id="someID">Hello World</input>

Я думал, что это эквивалентный код JQuery:

var $ctrl = $('<input/>').attr({ type: 'checkbox', id: 'someID', text: 'Hello World'})

Но, когда я добавляю $ctrl к этому тегу div, он, кажется, не включает текст Hello World.

$("#renderedControl").append($ctrl);

Любые идеи, что мне не хватает?

Ответ 1

попробуйте это

 var $ctrl =  $(document.createElement("input")).attr({
                     id:    'topicFilter-'
                    ,name:  'test'
                    ,value: 'test'
                    ,text :'my testing'
                    ,type:  'checkbox'
                    ,checked:true
            })

var lbl =  '<label>Hello world</label>';


 $("#renderedControl").append($ctrl.after(lbl));

Помогает справиться с ней

Ответ 2

Правильная разметка для того, что вы пытаетесь сделать, такова:

<label><input type="checkbox" id="someID">Hello World</label>

Элементы ввода не могут содержать контент (и требуют только закрывающий тег или самозакрывающиеся в xhtml).

Чтобы создать выше с помощью jQuery, попробуйте несколько вариантов:

var $ctrl = $('<label />').html('Hello world')
                          .prepend($('<input/>').attr({ type: 'checkbox', id: 'someID'}));

Демо: http://jsfiddle.net/bwxza/

Ответ 3

<input /> Элементы не являются парами тегов. Они самозакрывающиеся:

<input type="checkbox" id="someID" name="someName" value="input" />

С помощью jQuery вы можете сделать это:

$('<input />', {
    'type': 'checkbox',
    'id': 'someID',
    'name': 'someName'
}).after($('<label />', {
    'for': 'someName'
}).text('Hello World')).appendTo('body');​

Демо: http://jsfiddle.net/KNnUt/

Ответ 4

сначала, если вы хотите создать флажок, сделайте это так:

$("#renderedControl").append('<input type="checkbox" id="someID"/>');

Заметки, что html проверки должен быть определен следующим образом

<input type="checkbox" name="example" id="someID" /> 

Если вы хотите установить метку, вы должны создать элемент для этого флажка, как это, причина, по которой вы не можете видеть мир Hellow, не соответствует правилу использования текста, чтобы установить метку для флажка, и я думаю, что это не даже допустимый атрибут для этого типа. Вот пример html, связанный с меткой для этого флажка

<label for="example">Hellow world</label>

Затем добавьте весь связанный html, как этот

$("#renderedControl").append('<label for="checkbox">Hellow world</label>').append('<input type="checkbox" name="checkbox" id="someID" />')

В конце вы можете создать что-то вроде этого

http://jsfiddle.net/ynMK8/