所以我试图通过javascript(主要是为了优雅的降级目的)等在我的文档的某个部分中为我的所有图像(用于翻转)添加一些代码等等
注意到我的功能不起作用...我写了一个超小功能来测试它并没有好处。在这个例子中,我想要做的是警告图像alt标签,但不特定按钮div。基本上,将所述函数应用于父div(portSecW)中的所有图像,而不是关闭按钮image / div。
所以为了这个例子,继承了一些HTML(伪):
<div id="portSecW">
<img src="X" alt="something here"></img>
<img src="a" alt="something here"></img>
<img src="b" alt="something here"></img>
<div class="closeXbtn"><img src="g" alt="something here"></img></div>
</div>
这是我尝试过的。
$('#portSecW img:not(".closeXbtn")').click(function(){
alert($(this).attr("alt"));
return false;
});
我也是这样的
$('#portSecW img').not('.closeXbtn').click(function(){
alert($(this).attr("alt"));
return false;
});
我也尝试过这样但不起作用(所以我假设虽然我没有错误,但由于警报功能不起作用,所以它没有正确构建。)
$('#portSecW img.not(".closeXbtn")').click(function(){
alert($(this).attr("alt"));
return false;
});
所以不确定我做错了什么。
先谢谢。
注意:只是因为任何人都在寻找,标记的“”接受的答案“对我有用,但在进一步挖掘。我上面的所有尝试都起作用,问题是我不够精确,我怎么样遍历了DOM。所以所有这些都做同样的事情和工作。这里是我所做的改变,这些都是有效的。
$('#portSecW a').children('img').click(function(){
alert($(this).attr("alt"));
return false;
});
$('#portSecW img').not(".closeXbtn img").click(function(){
alert($(this).attr("alt"));
return false;
});
$('#portSecW img:not(".closeXbtn img")').click(function(){
alert($(this).attr("alt"));
return false;
});
感谢大家的帮助
答案 0 :(得分:1)
尝试删除课程周围的引号,例如:
$('#portSecW img:not(.closeXbtn)').click(function(){
alert($(this).attr("alt"));
return false;
});
如果你没有做到这样的事情:
$('#portSecW img').click(function(){
if($(this).hasClass('closeXbtn'))) { /* do something */ }
});
答案 1 :(得分:1)
使用.children()
:
$('#portSecW').children('img').click(function(){
alert($(this).attr("alt"));
return false;
});
.children()
方法允许我们在DOM树中搜索这些元素的子元素,并从匹配元素构造一个新的jQuery对象。
.children()
方法与.find()
的不同之处在于.children()
只能在DOM树中向下移动。
答案 2 :(得分:0)
试试这个:
$('#portSecW img').not(".closeXbtn img").click(function(){
alert($(this).attr("alt"));
return false;
});
OR
$('#portSecW > img').click(function(){
alert($(this).attr("alt"));
return false;
});
第二个更准确。这会将click事件绑定到portSecW
的直接子项。
答案 3 :(得分:0)
也许这可以帮到你:
$('#portSecW > img').click(function(){
alert($(this).attr("alt"));
return false;
});
...它只会选择主div的直接IMG后代,省略closeXbtn div中的那个。
但是,如果您需要保留您的功能,也许这可能会更好用:
$('#portSecW img:not(:parent(.closeXbtn))').click(function(){
alert($(this).attr("alt"));
return false;
});
答案 4 :(得分:0)
删除“不”,只需编辑此
$('#portSecW img').click(function(){
if($(this).hasClass('closeXbtn'))
//Do some play
})