我遇到链接问题。例如,以下内容将起作用
$('#myActivityFeed .bv_default_player_pic').attr("src", url);
$('#myActivityFeed. bv_default_player_pic').removeClass().addClass('badge');
但以下情况不会:
$('#myActivityFeed .bv_default_player_pic').attr("src", url).removeClass().addClass('badge');
据我所知,你应该能够把这些事件联系起来....任何想法为什么我不能?
答案 0 :(得分:2)
你的例子应该有用。 Here's a live example。它通过类“bv_default_player_pic”显示我的Gravatar周围有红色边框,在id
值为“myActivityFeed”的div中。当您单击该按钮时,它会执行您的代码(未更改,字面上复制和粘贴):
$('#myActivityFeed .bv_default_player_pic').attr("src", url).removeClass().addClass('badge');
...将src
设置为你的 Gravatar,删除所有类,并添加类“badge”(使用我的CSS使边框变黑)。
工作得很好。问题出在其他地方(url
定义了吗?)。
答案 1 :(得分:2)
根据最新的jQuery版本,不需要将参数传递给removeClass()方法。
This example说明上面的代码应该是可链接的,即使没有任何参数传递给removeClass()也可以工作。
来自jQuery removeClass() docs。
如果包含类名作为参数,则只有该类 从匹配元素集中删除。 如果没有类名 在参数中指定,将删除所有类。
我能在代码中看到的唯一问题是变量url可能未定义。
答案 2 :(得分:0)
removeClass()
会删除所有类,所以为什么不这样做:
$('#myActivityFeed .bv_default_player_pic').attr("src", url).attr("class", "badge");
答案 3 :(得分:-1)
attr
方法不返回jQuery对象。点击这里
attr Api
因此,你不能放任何东西。
而removeClass
返回一个jQuery对象。点击这里
removeClass api,您可以继续应用jQuery方法