javascript - 分割字符串并用复选框显示结果

标签 javascript jquery

我在 abc 中有一个由 3 个项目(值 1、2 和 3)组成的数组,我想在我的 html 中显示相同的内容,其中包含 3 个复选框,每个复选框都有一个值。

<script type="text/javascript">
    function populate(demo) {


            var abc = [1,2,3];
       var s1 = document.getElementById(demo);
    }

    for (var option in abc) {
        if (abc.hasOwnProperty(option)) {
            var pair = abc[option];
            var checkbox = document.createElement("input");
            checkbox.type = "checkbox";
            checkbox.name = pair;
            checkbox.value = pair;
            abc.appendChild(checkbox);

            var label = document.createElement('label')
            label.htmlFor = pair;
            label.appendChild(document.createTextNode(pair));

            s1.appendChild(label);
            s1.appendChild(document.createElement("br"));    
        }
    }
}
</script>
</head>
<body>
  Show checkboxes
<div id="demo" onload="populate('demo')"></div>

</body>

fiddle :http://jsfiddle.net/7n9w6kfm/1/

但在 HTML 中,它显示为 1,2,3 我如何用 3 个值为 1,2 和 3 的复选框来显示它们

最佳答案

由于您没有任何创建元素的尝试,但您对如何创建元素感兴趣,我将将此作为答案发布。

您可以使用document.createElement()Click here for documentation

If you assign document.createElement() to a variable you can use that variable to apply attributes within javascript document.createElement("[Type Of Element]");

示例:document.createElement("div"); 将创建一个 div 元素。

分配给变量(NewDiv):var NewDiv=document.createElement("div");

现在您可以应用其他属性,如下所示。

var NewDiv= document.createElement('div');
NewDiv.setAttribute('id','SomeRandomID');
NewDiv.setAttribute('class','SomeClass');
document.body.appendChild(NewDiv);

如果您想将新元素插入到特定元素/div/span,您可以使用

var target=document.getElementById('ElementID');
target.appendChild(NewDiv);

我希望这对您有所帮助,如果您在理解方面有任何问题,请告诉我,我将更新答案以更详细地解释。

Additional Information: this will create multiple elements if you place this into a for loop Click here for documentation

祝你编码愉快!

Changes to your source code below

function populate() {
/*-------------^^Demo^^ not needed, you have the element by ID below.*/
var abc = [1,2,3];
var s1 = document.getElementById('demo');
    for (var option in abc) {
    	 if (abc.hasOwnProperty(option)) {
            var pair = abc[option];
            var checkbox = document.createElement("input");
            checkbox.type = "checkbox";
            checkbox.name = pair;
            checkbox.value = pair;
            s1.appendChild(checkbox);
/*----------^^ Change to s1, abc is an array, not an element--------*/
            var label = document.createElement('label')
            label.htmlFor = pair;
            label.appendChild(document.createTextNode(pair));
            s1.appendChild(label);
            s1.appendChild(document.createElement("br")); 
            }   
    }
}
window.onload=populate;
<div id="demo"></div>

如果你想运行onload函数,你需要在body标签上应用onload=""或者在javascript中使用window.onload=FunctionName

关于javascript - 分割字符串并用复选框显示结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28951923/

相关文章:

javascript - HTA 的简单数据库

jquery - 如何聚焦 jQuery 的 Selectmenu 小部件来模拟 native 选择

javascript - 如何在 javascript 中自定义 <span>?

javascript - 仅针对 Windows 上的 Google Chrome

javascript - Windows 8 商店应用程序和 jQuery - MSApp.execUnsafeLocalFunction

javascript - 单击处理程序干扰 CSS 悬停状态

javascript - 如何让 jquery select2 动态禁用一个选项?

javascript - 如何使用 RequireJS 销毁加载的 Javascript 文件

javascript - 更改选择框的 CSS 样式表 src onChange

php - 实现像 facebook 聊天一样在 php 聊天中发送文件