我已保存class
保留用户点击的i
中a
元素位置的a
。单击attr
标记后,我想获取其i
的值,并将其作为类添加到 <i id="pps_ToggledIcon" class="pisp_p pISImage"></i>
<li class="privListItem checkedList selectedList li_public">
<a href="/p" class="psLink" title="pisp_p">
<span class="privLabel">PP</span>
</a>
</li>
<li class="privListItem checkedList selectedList li_public">
<a href="/f" class="psLink" title="pisp_f">
<span class="privLabel">F</span>
</a>
</li>
<li class="privListItem checkedList selectedList li_public">
<a href="/o" class="psLink" title="pisp_o">
<span class="privLabel">O</span>
</a>
</li>
元素标记中。我已经尝试过如下图所示,但我觉得这很多代码。如何在最短的扫描仪上完成?
$(".xyp li a").on("click", function(e) {
var pIcnSltd = $(this).attr("title");
var pTIcn = $("#pps_ToggledIcon");
if (pTIcn.hasClass("pisp_f") || pTIcn.hasClass("pisp_o")) {
pTIcn.removeClass("pisp_f");
pTIcn.removeClass("pisp_o");
pTIcn.addClass("pisp_p");
}
else if (pTIcn.hasClass("pisp_p") || pTIcn.hasClass("pisp_o")) {
pTIcn.removeClass("pisp_p");
pTIcn.removeClass("pisp_o");
pTIcn.addClass("pisp_f");
}
else if (pTIcn.hasClass("pisp_p") || pTIcn.hasClass("pisp_f")) {
pTIcn.removeClass("pisp_p");
pTIcn.removeClass("pisp_f");
pTIcn.addClass("pisp_f");
}
});
这是JS
{{1}}
答案 0 :(得分:1)
如何删除所有类,然后将pISImage
类与单击的锚点标题一起添加回类:
$(".xyp li a").on("click", function() {
$("#pps_ToggledIcon").removeClass().addClass('pISImage '+this.title);
});
答案 1 :(得分:0)
jQuery支持方法链:
$(".xyp li a").on("click", function(e) {
var pIcnSltd = $(this).attr("title");
var pTIcn = $("#pps_ToggledIcon");
if (pTIcn.hasClass("pisp_f") || pTIcn.hasClass("pisp_o")) {
pTIcn.removeClass("pisp_f").removeClass("pisp_o").addClass("pisp_p");
}
else if (pTIcn.hasClass("pisp_p") || pTIcn.hasClass("pisp_o")) {
pTIcn.removeClass("pisp_p").removeClass("pisp_o").addClass("pisp_f");
}
else if (pTIcn.hasClass("pisp_p") || pTIcn.hasClass("pisp_f")) {
pTIcn.removeClass("pisp_p").removeClass("pisp_f").addClass("pisp_f");
}
});
但要记住,最短的并不总是===
最好。而且,你的逻辑对我来说看起来很复杂,我甚至懒得试图破译你想要做的事情。
如果您想简化此代码,您应该首先重新考虑您的逻辑。
答案 2 :(得分:0)
删除注明的内容并添加一个
$(".xyp li a").on("click", function() {
$("#pps_ToggledIcon").removeClass('pisp_f pisp_p pisp_o').addClass(this.title);
});
注意:如果您可以删除所有类,包括“其他”pISImage,请使用adeneo的解决方案 - 很难判断删除/添加是否会引入一些不良影响或破坏其他代码(事件管理基于那个类,视觉表现等)