从jQuery选择器创建DOM元素
我想知道我是否可以创建一个元素,而不是通过jQuery选择器从DOM中选择一个元素 例如:从jQuery选择器创建DOM元素,jquery,dom,selector,Jquery,Dom,Selector,我想知道我是否可以创建一个元素,而不是通过jQuery选择器从DOM中选择一个元素 例如: $.create('#hello').insertAfter('#test'); 将产生以下结果: <div id="test">This element already existed in the DOM.</div> <div id="hello"></div> 用于: 显然,更复杂的操作,如:selected或:nth child或:not(
$.create('#hello').insertAfter('#test');
将产生以下结果:
<div id="test">This element already existed in the DOM.</div>
<div id="hello"></div>
用于:
显然,更复杂的操作,如:selected或:nth child或:not()以及所有这些都不需要实现
有人知道解决方案吗
谢谢。创建
试一试
使用以下功能:
createElement('<div id="test" class="a b"></div>', 'body');
只需将html标记插入其中即可
$("<div id='hello'></div>")
$(“”)
有关更多详细信息,请参见此处
我看不出有什么东西会根据css选择器语法创建元素。JQuery确实允许您创建和添加元素,但语法并不像您的示例中那样基于css选择器。例如,要在#test div之后添加类为a和b的#hello div,可以使用.after():
$('#test')。在(“Hello”)之后;
jsfiddle:
或
$('#test')。在('Hello')之后。attr('id','Hello')。addClass('a')。addClass('b');
jsfiddle:我实际上在早些时候创建了一个,仍然有一点问题,但它适用于您正在考虑的情况,就像使用它一样
$.jseldom('#test.a.b')
您甚至可以将其与同级选择器一起使用
$.jseldom('#test #abc .child +.sibling-of-child')
如果您觉得它有用,请使用它,并在那里报告所有问题:p我真的希望将它变成对人们有益的东西:)您的功能正是我想要的;我认为jQuery没有执行这种操作的默认功能,这是可以理解的,因为它没有通用性。无论如何,谢谢你的帮助,省去了我自己编写函数的麻烦!:)@约翰加特,伙计。很高兴帮助你。你好。我喜欢你的解决方案,但是你必须更新一个细节:newelement=$(''),在你的演示中,尝试向html面板添加一个新的div,看看会发生什么。再次感谢你!可能重复的
function createElement(el, target) {
$(el).appendTo(target);
}
createElement('<div id="test" class="a b"></div>', 'body');
function createElement(el, prop, target) {
var props = prop.split('.'),
newelement = $(el),
id = '',
className = '';
$.each(props, function(i, val) {
if(val.indexOf('#') >= 0) {
id += val.replace(/^#/, '');
} else {
className += val + ' ';
}
});
if(id.length) newelement.attr('id', id);
if(className.length) newelement.attr('class', className.trim());
$(newelement).html('Newly born').appendTo(target);
}
createElement('div', '#test.a.b', '#con'); // will work for #test.a.b or, .a.b or, #test.a
$("<div id='hello'></div>")
$('#test').after("<div id='hello' class='a b'>Hello</div>");
$('#test').after('<div>Hello</div>').attr('id', 'hello').addClass('a').addclass('b');
$.jseldom('#test.a.b')
$.jseldom('#test #abc .child +.sibling-of-child')