我非常精通编码,但偶尔我会遇到似乎基本相同的代码.我在这里的主要问题是,你为什么要使用.append()当时.after()或反之?
我一直在寻找,似乎无法找到两者之间的差异的明确定义,何时使用它们以及何时不使用它们.
一个优于另一个的好处是什么?为什么我会使用一个而不是另一个?有人可以向我解释一下吗?
var txt = $('#' + id + ' span:first').html();
$('#' + id + ' a.append').live('click', function (e) {
e.preventDefault();
$('#' + id + ' .innerDiv').append(txt);
});
$('#' + id + ' a.prepend').live('click', function (e) {
e.preventDefault();
$('#' + id + ' .innerDiv').prepend(txt);
});
$('#' + id + ' a.after').live('click', function (e) {
e.preventDefault();
$('#' + id + ' .innerDiv').after(txt);
});
$('#' + id + ' a.before').live('click', function (e) {
e.preventDefault();
$('#' + id …Run Code Online (Sandbox Code Playgroud) 我有一个特定的文本框,我想在它之后添加一个div.我已经尝试过该.append()函数,但只在元素中添加了div.
例如,我有:
<input type="text" id="bla" />
Run Code Online (Sandbox Code Playgroud)
我想把它改成:
<input type="text" id="bla" /><div id="space"></div>
Run Code Online (Sandbox Code Playgroud) jQuery有一个.after()方法,也有一个.insertAfter()方法.
他们之间有什么区别?我想我可以使用.after()在所选元素(或元素)之后插入元素.是对的吗?有什么.insertAfter()用?
我很好奇为什么jQuery的.after()不会链接或"提供你",你用它创建的新元素.在我看来它应该是,但我不是专家,并希望有人可以阐明为什么这是一个坏主意.这是一个例子,看看我想要什么.after():
这是一些标记:
<div id="content1">
<p id="hello1">Hello</p>
</div>
<div id="content2">
<p id="hello2">Hello</p>
</div>
Run Code Online (Sandbox Code Playgroud)
这就是我想要的,但这将"Hello"替换为"World!":
$('#hello1').after('<p />').text('World!');
Run Code Online (Sandbox Code Playgroud)
这样做,但肯定是丑陋的:
$('#hello2').after('<p />');
var $newParagraph = $('#content2 p').last();
$newParagraph.text('World');
Run Code Online (Sandbox Code Playgroud)
这更好,但我没有完全卖掉:(也许我应该?)
$('#hello1').after( $('<p />').text('World') );
Run Code Online (Sandbox Code Playgroud)
请注意,这显然是一个简化的例子,即"<p> World!</ p>"不是我想要添加的,我的真实世界问题比这更复杂.
谢谢你的任何想法.
这个参考代码:
$("#id").after(string);
Run Code Online (Sandbox Code Playgroud)
将字符串的元素插入其需要的位置是否相当不错.
如何获取对新插入的HTML元素(字符串)的引用?
就我所知,以下代码应该可以工作,创建一个<div>元素,然后创建一个<p>元素; 表达式应该导致一个带有两个元素的jQuery对象:
$("<div>first element's content</div>").after("<p>second element's content</p>");
Run Code Online (Sandbox Code Playgroud)
但是,我得到的是非常不同的.文档(参见标题"插入断开的DOM节点")告诉我上面的代码应该生成一个jQuery对象,抓取两个HTML片段并构建两个DOM元素.但是,我所获得的,在几个不同版本的jQuery中,都高于1.4,是一个只有1个节点的jQuery对象.但是,下面的代码工作正常,返回(我相信)正确的jQuery对象,里面有两个元素:
$("<div></div>").after("<p>second element's content</p>");
Run Code Online (Sandbox Code Playgroud)
这个例子也适用:
$("<div></div>").after("<p>second element's content</p>").after("<p>third element's content</p>");
Run Code Online (Sandbox Code Playgroud)
.after()如果创建的第一个DOM节点为空,则该方法可以正常工作,但是当它不存在时(不管后续DOM节点的内容是否附加到它),该方法似乎没有问题.
我是否遗漏了有关jQuery的内部,奇怪的DOM问题和/或JavaScript特性的问题,或者这只是一个jQuery错误,从版本1.4到1.7继续存在?
(这是一个微薄的JSFiddle,很明显地展示了这个问题.)
简单但真的无法让它工作,这是我的脚本......
$('body').after('<div id="lightBox" style="height: ' + htmlHeight + 'px;"></div>');
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它淡出而不仅仅是弹出?放fadeIn()或之后.after()不起作用?
我在这里有一些代码:
<body>
<p>This is a paragraph.</p>
<button>click me</button>
</body>
Run Code Online (Sandbox Code Playgroud)
$(document).ready(function(){
$("button").click(function(){
$("p").hide().after('<p>hello world</p>');
});
});
Run Code Online (Sandbox Code Playgroud)
实际上,我也在使用JQuery 2.0.2.
"<p>This is paragraph<p>"将被替换为<p>hello world</p>.
第一次点击成功.然而,许多hello world随着进展的增长率显示在第一次显示之后hello world.例如:

<p style="display: none;">This is a paragraph.</p>
<p>hello world</p>
<p style="display: none;">hello world</p>
<p>hello world</p>
<button>click me</button>
Run Code Online (Sandbox Code Playgroud)
为什么第一个<p>hello world</p>没有被新的替换?
它不是仅仅显示一个p标签吗?
我有<ul>一些<li>元素.其中一些是隐藏的,并在单击jQuery时添加到列表的末尾after().
但是,由于某些原因,添加的元素after()总是与它们之后添加的元素太接近.
我在这里做了一个jsbin演示
另外,截图解释:

使用after()而不是简单的原因addClass或者show是因为列表依赖于应用样式li:nth-child(even),因此如果元素存在但仅隐藏,则会导致列表样式中出现问题.
我正在尝试将一个类添加到现有的 div 容器中,并在现有的 div 下方插入一个新的 div(成功时)。
<script>
$(document).ready(function(){
$(".entry").click(function(){
$('#content').addClass("col2",1000).after('<div class="box col2">test</div>', function(){
$(this).slideDown();
});
});
});
<script>
Run Code Online (Sandbox Code Playgroud)
不幸的是,这段代码不能正常工作。slideDown 函数不起作用,即使前一个函数尚未完成,新的 div 也已经出现。
如果有人可以帮助我就好了。
jquery ×10
jquery-after ×10
javascript ×8
html ×4
append ×2
insertafter ×2
css ×1
dom ×1
fadein ×1
prepend ×1
slidedown ×1