Jquery .insertAfter() 多次插入
Jquery .insertAfter() inserts multiple times
我有一个使用jquery将一些html插入dom的Web应用程序:
$('<div />').html('<span class="' + someID + '-id">SomeText</span>').insertAfter($(".someidentifier"));
我遇到的问题是,someidentifier
类中可能有很多元素,并且每个元素中的每一个,如果我有两个元素,那么这段代码将运行,正如您可以想象的那样:
<div class="someidentifier">Some text</div>
<div class="someidentifier">Some text</div>
此代码将在 DOM 中生成以下内容:
<div class="someidentifier">Some text</div>
<span class="3123564654-id">SomeText</span>
<span class="3123564654-id">SomeText</span>
<div class="someidentifier">Some text</div>
<span class="3123564654-id">SomeText</span>
<span class="3123564654-id">SomeText</span>
哪里应该:
<div class="someidentifier">Some text</div>
<span class="3123564654-id">SomeText</span>
<div class="someidentifier">Some text</div>
<span class="3123564654-id">SomeText</span>
所以我想使用 .next()
函数并检查下一个兄弟姐妹是否有我尝试输出的类,如果是,请取消插入。这是我无法弄清楚的部分,因为我只是说insertAfter(jQueryObject)
,我不知道如何拦截和取消它。我应该注意,我不能在它周围使用 if 语句,因为在这种情况下jQueryObject
都已经div
了。
如果对象具有3123564654-id
类的span
作为下一个同级,是否可以修改选择器以不包含该对象?
如果代码被多次执行,那么你可以过滤掉someidentifier
元素,这些元素的下一个元素具有新的属性,如
var someID = '3123564654';
var targets = $(".someidentifier").filter(function () {
var $next = $(this).next();
return !$next.length || !$next.children('span').hasClass(someID + '-id')
});
$('<div />').html('<span class="' + someID + '-id">SomeText1</span>').insertAfter(targets);
演示:小提琴
如何检查类似...
if ( $(this).has(someID).length == 0) )
{
$(this).append('whateverYouNeedToAppendHere');
}
相关文章:
- 将样式表插入iframe
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- 如何动态插入jquery代码
- 动态插入的表:JQuery未检测到最后一行
- 使用JavaScript动态插入DIV的成本有多高
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 将对象动态插入到现有对象中
- 将数组中的值插入到表中
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- 我如何在数字插入中使用逗号,这样它就不会'不要破坏我的输入字段
- 使用PHP插入HTML在JavaScript上不起作用
- javascript:将数据库中的数据插入到html5文本字段中
- 从数据库中获取数据并插入JavaScript变量
- 如何使用innerHtml正确插入html
- AngularJS指令,在元素后插入HTML
- 当用户按下回车键时,自动在text区域/text中插入消息
- 如何使用JS禁用表行,并在MYSQL中插入所选选项
- Jquery .insertAfter() 多次插入
- jQuery insertAfter:将插入<但不是
- 如何使用insertAfter方法插入html以及fadeIn效果,以便html只是淡入