addClass不起作用,不能定义(这个)

时间:2010-12-06 13:05:48

标签: jquery this addclass

这是我的javascript:

$(function() {
$(".image2").click(function() {var image = $(this).attr("rel");
$('#image2').hide();
$('#image2').fadeIn('slow');
$('#image2').html('<embed height="253" width="440" wmode="transparent" src="' + image + '"></embed>');
return false;
 });
});

$(document).ready(function() {
 $("#thumb2 a").each(function() {
 var image = $('#image2 embed').attr('src');alert(image);
 if(this.attr('rel') = image ) 
 $(this).addClass("open");
 });
});

和我的HTML:

<style>
 #thumb2 img { border:1px solid #dfdfdf; padding:3px; height:29px; margin-top:5px; opacity:0.3; }
#thumb2 img:hover { border:1px solid #fc7200; opacity:1.0; }
 .image2.open { border:1px solid #fc7200; opacity:1.0; }
</style>

<div id="image2"><embed height="253" width="440" wmode="transparent" src="images/kameralar.swf"></embed></div>
<div id="thumb2">
<a href="#" rel="images/kameralar.swf" class="image2" ><img src="images/t1.png" border="0"/></a>
<a href="#" rel="images/standalone.swf" class="image2"><img src="images/t2.png" border="0"/></a>
<a href="#" rel="images/mobil.swf" class="image2"><img src="images/t3.png" border="0"/></a>
<a href="#" rel="images/3b2.swf" class="image2"><img src="images/t4.png" border="0"/></a>
<a href="#" rel="images/canon.swf" class="image2"><img src="images/t5.png" border="0"/></a>
<a href="#" rel="images/indigovision.swf" class="image2"><img src="images/t6.png" border="0"/></a>
</div>

无法将类添加到其rel属性与embed src属性相同的链接...添加了jquery ...请输入smb帮助!

1 个答案:

答案 0 :(得分:3)

问题是.attr()不是DOM元素上可用的方法,=设置(或尝试)左侧,而不是比较两者。要修复第一个,你需要包装它,所以这个:

if(this.attr('rel') = image )

需要:

if($(this).attr('rel') == image)

另请注意比较的双==,而不是集合。


但是,更短,更有效的更好的解决方案是:

$(document).ready(function() {
  var image = $('#image2 embed').attr('src');
  $("#thumb2 a[rel='" + image + "']").addClass("open");
});