我正在重构一些旧的JavaScript代码,并且正在进行大量的DOM操作.
var d = document;
var odv = d.createElement("div");
odv.style.display = "none";
this.OuterDiv = odv;
var t = d.createElement("table");
t.cellSpacing = 0;
t.className = "text";
odv.appendChild(t);
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更好的方法来使用jQuery.我一直在尝试:
var odv = $.create("div");
$.append(odv);
// And many more
Run Code Online (Sandbox Code Playgroud)
但我不确定这是否更好.
最近我一直在做很多模态窗口弹出窗口,什么不是,我使用jQuery.我用来在页面上创建新元素的方法绝大多数都是这样的:
$("<div></div>");
Run Code Online (Sandbox Code Playgroud)
但是,我觉得这不是最好或最有效的方法.从性能角度来看,在jQuery中创建元素的最佳方法是什么?
这个答案有以下建议的基准.
我有两种方法可以创建一个<div>
使用jQuery
.
或者:
var div = $("<div></div>");
$("#box").append(div);
Run Code Online (Sandbox Code Playgroud)
要么:
$("#box").append("<div></div>");
Run Code Online (Sandbox Code Playgroud)
使用除可重用性之外的第二种方式有什么缺点?
我看到人们用两种不同的方式在jQuery中创建HTML元素:
$('<element>')
Run Code Online (Sandbox Code Playgroud)
和
$('<element />')
Run Code Online (Sandbox Code Playgroud)
我很好奇哪一个"更正确".我看到第一个显而易见的优点是只是简单地输入.根本使用哪一个会有所不同吗?
单引号在HTML中有效吗?更具体地说:XHTML严格.
<table width="100%">
<table width='100%'>
Run Code Online (Sandbox Code Playgroud) 我有一个类似于此的链接
<a href="/home/category/blog/1" id="blog">Blog</a>
Run Code Online (Sandbox Code Playgroud)
你可以链接有一个ID'博客',我想要做的是动态创建一个div与点击链接的ID,如果点击'博客',那么标记将是
<div id="blog">
<!--some content here-->
</div>
Run Code Online (Sandbox Code Playgroud)
如果点击新闻链接就好了,那么我想,
<div id="news">
<!--some content here-->
</div>
Run Code Online (Sandbox Code Playgroud)
如果可能的话,在标记中创建?以及我对jQuery的新手.
我想打印整个元素,包括标签名称,属性名称/值对和innerHTML.我怎么能用JavaScript(jQuery)呢?
例如:
var elArr = document.getElementsByTagName('link');
alert(elArr[0].printEntireElement());
//expected output might be
<link href="/css/common.css" rel="stylesheet" type="text/css">`
Run Code Online (Sandbox Code Playgroud)
请注意,对于link元素,outerHTML未定义!
我一直在努力解决这个问题而且我有点陷入困境.我似乎无法找到一个直接的答案所以我会问.
我正在从JSON调用创建一个选项列表.我已经创建了子元素,但我似乎无法将唯一ID(存储在JSON中)添加到每个元素.当我在JSON的$ .each中创建ID时,我从分配给所有选项的调用中获取最后一个ID.
谢谢
$("#fDistList").append('<option>' + item.GROUP_NAME + '</option>');
$("option").attr('id', item.ID);
Run Code Online (Sandbox Code Playgroud) 我在html中有两个div,叫做"answerdiv 1"和"answerdiv 2".
现在我想给/创建div id,如"answerdiv 3""answerdiv 4""answerdiv 5"等等.
使用javascript/jquery如何在这些动态创建的div中添加内容哪些id应该是唯一的?
在我的项目中,用户可以添加"n"个div,对它没有严格的限制.
帮帮我.
谢谢Adv
================================================== ==============================
我的HTML代码是:
<div id="answertextdiv">
<textarea id="answertext" name="answertext" placeholder="Type answer here" rows="2" cols="40" tabindex="6" onBlur="exchangeLabelsanswertxt(this);"></textarea>
</div>
Run Code Online (Sandbox Code Playgroud)
我的JS代码:
function exchangeLabelsanswertxt(element)
{
var result = $(element).val();
if(result!="")
{
$(element).remove();
$("#answertextdiv").append("<label id='answertext' onClick='exchangeFieldanswertxt(this);'>"+result+"</label>");
}
}
function exchangeFieldanswertxt(element)
{
var result = element.innerHTML;
$(element).remove();
$("#answertextdiv").append("<textarea id='answertext' name='answertext' placeholder='Type answer here' rows='2' cols='40' tabindex='6' onBlur='exchangeLabelsanswertxt(this);'>"+result+"</textarea>");
}
Run Code Online (Sandbox Code Playgroud)
现在从上面的代码我想在所有的东西中添加唯一的"answertextdiv"id.
我有一个JavaScript函数:
function addTool(id, text, tool, pic) {
var container = getById('infobox');
var origimg = getById('tempimg').src;
container.innerHTML += "<div id='" + id + "' class='toolText'>" + text + "<br><img class='toolImg' src='img/tools/" + tool + "'></div>";
getById(id).setAttribute('onMouseOver', "mOver('"+ id +"', '" + pic + "');");
getById(id).setAttribute('onMouseOut', "mOut('"+ id +"', '" + origimg + "');");
getById(id).setAttribute('href', 'javascript:mClick(id);');
}
Run Code Online (Sandbox Code Playgroud)
div
使用此代码生成几个s:
addTool("1p", "Bar", "tool1.jpg", 'img/p&g-part-2_skiss1-2.jpg');
addTool("2p", "Tube", "tool1.jpg", 'img/p&g-part-2_skiss1-2.jpg');
addTool("3p", "Rotating", "tool1.jpg", 'img/p&g-part-2_skiss1-2.jpg');
Run Code Online (Sandbox Code Playgroud)
鼠标事件在IE以外的所有主流浏览器中都能正常工作.似乎div
除了最后一个之外的所有s都将以小写形式显示鼠标事件,这将使鼠标事件完全与写入大写字母一样.
所有鼠标事件都将触发,除了最后一个div
,即使我写onmouseover
而不是说ONmouseOVER
,除了最后一个之外,所有鼠标事件都可以正常工作.
javascript ×8
jquery ×6
html ×5
dom ×2
append ×1
dhtml ×1
json ×1
mouseevent ×1
onmouseover ×1
xhtml ×1