我希望在整个网站上添加一段代码来影响我的所有网页。
现在,它就是这样的。
if($('#container > div:first').attr('id') == 'filterOptions') {
$('#container').prepend('<div class="banner"></div>');
}
输出:
<div id="container">
<div class="banner"></div>
<div id="filterOptions"><div>
</div>
示例,如果容器看起来像这样:
<div id="container">
<div class="existingBanner"></div>
<div id="filterOptions"><div>
</div>
由于第一个div没有filterOptions ID,所以不会发生任何事情。
现在我遇到了一个问题,因为我也有一些看起来像是这样的横幅广告被添加到
<div id="container">
<a class="existingBanner" href="#"></a>
<div id="filterOptions"><div>
</div>
这基本上有一个双横幅,这是我想避免的。因为它是一个锚而不是一个div。
所以我的问题是。而不是定位 div:first 我将如何定位所有元素?
类似......
if($('#container >
任何 :first').attr('id') == 'filterOptions') { ... }
答案 0 :(得分:0)
您必须使用All Selector (*
)
if($('#container > *:first').attr('id') == 'filterOptions') {
$('#container').prepend('<div class="banner"></div>');
}
或者您可以使用功能方法:
// with hoisting
var $container = $('#container');
if($container.children().first().attr('id') == 'filterOptions') {
$container.prepend('<div class="banner"></div>');
}
你也可以翻转逻辑:
// filterOptions is the first child:
if ( $('#filterOptions').prev().length === 0 ) {
$('container').prepend('<div class="banner"></div>')
}
答案 1 :(得分:0)
if($('#container > div:first-child').attr('id') == 'filterOptions') {
$('#container').prepend('<div class="banner">111111111</div>');
}
所以,先改变一下&#39;给第一个孩子&#39;。http://jsfiddle.net/un3opbsh/
答案 2 :(得分:0)
如果您想使用filterOptions ID #filterOptions
您应该在children()
var $container = $('#container');
if($container.children().attr('#filterOptions') === "filterOptions") {
$container.prepend('<div class="banner"></div>');
}
如果#filterOptions
适用于任何标记而不仅仅是div。
希望它会对你有所帮助。