我有以下代码,目的是在目标div中定位值,如下所示:
$('#combineDiv').children().each(function(){
if ($(this + ":first-child").attr('class') == 'combinedColumn') {
alert('found ONE!');
}
});
我在div'#combineDiv'的子节点中的某些div中有一个隐藏的输入...但是,我不知道如何将'THIS'关键字与适当的选择器结合...... :(
答案 0 :(得分:2)
记住this
将从DOM返回一个对象,因此$(this + ":first-child")
可能不会给你你想要的东西(它可能会返回类似[object Object]的内容:first柴尔德。
而是尝试从this
对象
$(this.ID +“:first-child”)。attr('class')
答案 1 :(得分:0)
$(this).filter(":first-child")
答案 2 :(得分:0)
不确定您要做什么,但我的假设是您要查看#combineDiv
的每个孩子的:first-child
,即.combinedColumn
$("#combineDiv > * > .combinedColumn:first-child");
答案 3 :(得分:0)
使用.filter("selectors")
,即。 $(this).filter(":first-child")....
事实上你可以使用$(this).filter(":first-child .combinedColumn")
我相信。
答案 4 :(得分:0)
使用.find向下移动多个级别
$('#combineDiv').find(selector).each(
function(){
if ($(this + ":first-child").attr('class') == 'combinedColumn') {
alert('found ONE!');
}
});
答案 5 :(得分:0)
您可以使用has
方法获取具有与选择器匹配的子元素的元素,并自行循环遍历子项:
$('#combineDiv').children().has('.combinedColumn:first-child').each(function(){
alert('found ONE!');
});
示例:
使用此HTML:
<div id ="combineDiv">
<div><span class="none">1</span><span class="none">1</span></div>
<div><span class="none">2</span><span class="combinedColumn">2</span></div>
<div><span class="combinedColumn">3</span><span class="none">3</span></div>
<div><span class="combinedColumn">4</span><span class="combinedColumn">4</span></div>
</div>
这将匹配第三个和第四个子div并使它们的背景变为灰色,因为它们有第一个具有“combinedColumn”类的子项:
$('#combineDiv').children().has('.combinedColumn:first-child').css('background', '#ccc');