我的dom看起来像:
<div id="foo">
</div>
<ul>
<li>...</li>
<li>..</li>
</ul>
我正在使用'#foo'div执行某些操作,并希望测试后面是否存在<ul>
元素。如果确实如此,那么我想在其中添加<li>
。如果不是,我想创建<ul>
向其附加<li>
,然后将其直接放在div之后。
我有办法在jquery中做到这一点吗?
答案 0 :(得分:3)
if(!$('#foo').next('ul').length) {
//not found
}
答案 1 :(得分:2)
像这样:
$(document).ready(function() {
var $foo = $('#foo'),
$ul = $foo.next('ul');
if ($ul.length) {
// <ul> exists; add a <li> to it
$ul.append('<li></li>');
} else {
// <ul> does not exist; create one, add a <li> to it,
// then insert it after #foo
$foo.after('<ul><li></li></ul>');
}
});
供参考:
答案 2 :(得分:1)
if( $("#foo").next().is("ul") ){
// next element is ul
} else {
// next element is NOT ul
}
is()
返回一个布尔值(true或false),具体取决于所选元素是否与选择器匹配。在这里,我们选择foo
div,使用next()
选择立即成功的元素,并检查它是否与选择器"ul"
匹配。
答案 3 :(得分:0)
$(document).ready(function(e){
$("#foo").click(function(e){
if($(this).next().get(0).tagName == 'UL'){
// do something
// add li to your ul
}
else {
// do something
//make a ul li
}
});
});