我正在尝试向表单添加复选框列表.当我使用下面的代码时,我得到了数组中的所有项目但没有复选框,所以我无法选择任何内容.我确信这有一个非常简单的解决方案,但我看不出我做错了什么(我是新手).非常感谢您的帮助.这是代码:
var check_value = new Array()
check_value[0] = "I work at home"
check_value[1] = "Train/Subway"
check_value[2] = "Walk"
check_value[3] = "Bicycle"
for(count in check_value)
{
var ptworkinfo=document.createElement("input");
ptworkinfo.type="checkbox";
ptworkinfo=(check_value[count] + "</br>");
ptworkinfo.id="ptworkinfo";
document.write(ptworkinfo);
count+=count;
}
Run Code Online (Sandbox Code Playgroud) 我用Google搜索了很多关于创建多个项目的内容appendChild,但我不了解它是如何工作的.我appendChild只是替换而不是添加许多.
var startGame;
var cards = 16;
var newDeck = [];
startGame = function(){
var startBtn = document.getElementById('start');
var board = document.getElementById('game-board');
var backside = document.createElement("div");
backside.className = 'card';
startBtn.onclick = function(){
removeButton = document.getElementById("start");
removeButton.parentNode.removeChild(removeButton);
for(var i = 0; i < cards; i++){
board.appendChild(backside);
}
};
};
Run Code Online (Sandbox Code Playgroud)
我也读过你可以这样做innerHTML,但这让我感到困惑.有没有人对如何使这项工作有更详细的解释?
我想使用JQuery创建一组要添加到HTML文档的元素$(document.createElement()).$(document).ready()在开始使用文档元素之前我知道是必需的.
但是,是否有必要使用$(document).ready()以创建元素$(document.createElement())?换句话说,我可以$(document.createElement())在文档准备好之前使用吗?
这很令人沮丧,我想在点击时在我的页面上创建新的input field内部.我使用javascript函数将新的子元素(输入字段)附加到现有的.这一切看起来像这样:divaspxbuttondiv
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="Pages_test" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function clone() {
var html = document.createElement("input");
html.setAttribute("id", 1);
html.setAttribute("name", "dejan");
html.setAttribute("value", "some text");
html.setAttribute("type", "text");
document.getElementById("panj").appendChild(html);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="panj">
Djubrov
</div>
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="clone()" />
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
有趣的是,当我点击按钮时,带有设置文本值的文本元素闪烁第二,但它在消息后消失.我错过了什么吗?
有人可以帮帮我吗?我正在尝试使用此函数动态创建输入,但未设置"form" 属性.
function addInput(parentID,inputNAME) {
var padre = document.getElementById(parentID);
var container = document.createElement("input");
container.type = "text";
container.name = inputNAME;
container.value = "";
container.form = 'extra';
var enter = document.createElement("br");
padre.appendChild(container);
padre.appendChild(enter);
}
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
container.formName = 'extra';
container['form'] = 'extra';
container.attributes['form'] = 'extra';
container.createAttribute('form','extra')
Run Code Online (Sandbox Code Playgroud)
编辑:
答案:
container.setAttribute("Form",'extra');
我正在尝试创建一个弹出框,单击一个按钮就可以调用它,这是我到目前为止所拥有的... http://jsfiddle.net/WGPhG/2/
我正在尝试学习Vanilla JavaScript或纯JS,但是你看看它.我开始学习jQuery,现在我试图在没有框架的情况下提高速度.我通常可以使用jQuery来获取它,但是使用纯JS很难做到这一点.
var a = $('.entry-content'),i;
for (i=0;i<a.length; i++) {
var b = a[i].innerHTML;
var c = document.createElement('div');
var d = c.id = 'reply_bb';
var e = d.innerHTML = 'Reply';
a[i].innerHTML = a[i].appendChild(c);
}
Run Code Online (Sandbox Code Playgroud)
基本上我想要做的是向var a元素添加一个元素.
<div class="entry-content">
<div>
Words from a poster or whatever would be in side here
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
在javascript =之后
<div class="entry-content">
<div>
Words from a poster or whatever would be in side here
</div>
<div id="reply_bb">Reply</div>
</div>
Run Code Online (Sandbox Code Playgroud)
因为这是相关的.在动态创建元素时,我会使用.click或者.on('click',function() {我将如何进行此操作?我想要它,所以当用户单击reply_bb时,它会附加刚刚隐藏的页面上的另一个元素.
我在这里有点困惑.我试图做一些基本的DOM操作 - 通过在<head>标签上添加标题来测试它.这就是我写的:
document.head.appendChild(document.createElement("title").appendChild(document.createTextNode("Test Title")));
Run Code Online (Sandbox Code Playgroud)
但是,上述方法不起作用.如果我拆分它,它的工作原理:
var node = document.createElement("title");
var text = document.createTextNode("Test title");
node.appendChild(text);
document.head.appendChild(node);
Run Code Online (Sandbox Code Playgroud)
为什么,我错过了什么?
我想在弹出窗口中创建大量的行以使用for循环显示我的数据,我使用文本字符串来创建和附加div,但是我发现它document.createElement是高性能并且使用了将性能提高了20%,但是因为我填充了1000s行创建元素所用的时间document.createElement非常长.有没有办法通过创建一次元素来提高性能,并使用众多实例重新使用它,任何建议都将受到赞赏
有没有一种方法可以在不运行代码的情况下创建可解析的Dom?我会解释未来;
我收到一大堆 CK 编辑器创建的 HTML 代码,但想从中解析元素以创建指定的视图。例如,我想将第一段作为介绍,将第一张图像作为主图像。另外,我想检索所有图像以创建画廊。
为此,我创建了一个简单但有效的函数:
export const getFromContent = (html, qsa) => {
const elm = document.createElement("DIV");
elm.innerHTML = html;
let r = elm.querySelectorAll(qsa);
return r;
}
Run Code Online (Sandbox Code Playgroud)
这项工作几乎完美 - 唯一的问题是将所有内容添加到 DOM(我使用这个术语正确吗?),这意味着所有资源都会被加载,即使它没有显示在页面上。
在我的示例中,我想在显示之前通过 //res.cloudinary.com/ com 压缩图像加载所有图像,但由于所有图像都已加载,因此没有必要。
有没有办法只用基本的 JS 来保留这个好的“版本”?
PS:我知道我可以使用正则表达式将所有“src”重写为“presrc”,但我真的很想在不更改代码的情况下执行此操作,从而为错误创造空间。
最好的问候理查德
createelement ×10
javascript ×10
appendchild ×3
dom ×3
html ×2
jquery ×2
append ×1
asp.net ×1
checkbox ×1
ecmascript-6 ×1
events ×1
for-loop ×1
html5 ×1
innerhtml ×1
performance ×1