我想动态创建复选框。我这样做,但是我没有设置标签的名称。我尝试将内部html设置为一个值,尽管它没有用。这样做的正确方法是什么? 源:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
</head>
<body>
<div data-role="page" >
<fieldset data-role="controlgroup" id="exampleGroup">
</fieldset>
</div><!-- /page -->
</body>
<script>
var someId = "Something";
for (var i = 0; i < 5; i++) {
var checkBox = $('<input>', {
type: "checkbox",
class: "custom",
id: someId + i.toString()
});
var checkBoxLabel = $('<label>', {
for : someId + i.toString(),
});
checkBoxLabel.innerHTML = "Hello world!"; // didn't work
checkBox.appendTo("#exampleGroup");
checkBoxLabel.appendTo("#exampleGroup");
}
</script>
</html>
答案 0 :(得分:1)
使用text()
您可以设置标签内的文字
试试这个:
checkBoxLabel.text("Hello world!");
答案 1 :(得分:0)
使用text()
或html()
设置DOM节点的内容。它们之间的区别在于它们如何处理HTML标记。
checkBoxLabel.html('<foo>');
// <label><foo></label>
checkBoxLabel.text('<foo>');
// <label><foo></label>
当您不需要HTML时,您应该更喜欢text()
。
答案 2 :(得分:0)
试试这个
<强> JSFIDDLE 强>
var someId = "Something";
for (var i = 0; i < 5; i++) {
var checkBox = $('<input>', {
type: "checkbox",
class: "custom",
id: someId + i.toString()
});
var checkBoxLabel = $('<label>', {
for: someId + i.toString(),
});
checkBoxLabel.text(someId + i.toString());
checkBox.appendTo("#exampleGroup");
checkBoxLabel.appendTo("#exampleGroup");
}
以下是您要查看的区域
checkBoxLabel.text(someId + i.toString());
我使用jquery文本来更改标签文本