关于JQ或者JS选择两个A然后获取A的不同值和ID

html代码如下:<divclass="form-itemclearfix"><labelfor="">推荐标签:</label><spanclass="option-h... html代码如下:
<div class="form-item clearfix">
<label for="">推荐标签:</label>
<span class="option-hint">最多可选2个</span>
<div class="option-tag">
<a data-id="1" href="javascript:;"class="on" >音乐</a>
<a data-id="3" href="javascript:;" class="on" >动漫</a>
<a data-id="4" href="javascript:;">演出</a>
<a data-id="5" href="javascript:;">活动</a>
<a data-id="8" href="javascript:;">粉丝</a>
<a data-id="7" href="javascript:;">周边</a>
<a data-id="9" href="javascript:;">舞台剧</a>
</div>
</div>

假如点击一个A、动漫,就会给一个class="on",并且a样式是选中,当我再点击a、演出
同样给一个class="on",并且a样式也选中。条件,如果只选一个A(就是点击只有一个A)就返回A的值(如音乐)和data-id(1),但是如果选中两个A,也就是选中两个A的class="on"都有,同时获取到数组 3=>动漫,4=>演出,之后只能取消之前选中的两个或者一个,最多也就能选中2个。求问,怎样用JQ或者JS获取到选中的两个的值和 data-id,或者只选中一个的值和 data-id呢????
选中后样式如下,只求JQ或者JS获取到选中两个或者选中其中一个的值和data-id
展开
 我来答
百度网友062f9c8
2016-07-07 · TA获得超过1254个赞
知道小有建树答主
回答量:840
采纳率:60%
帮助的人:731万
展开全部

你的问题描述不清楚啊, 具体的操作都到底是什么你说清楚点,

什么同时获取到数组 3=>动漫,4=>演出, 这句话什么意思?

之后只能取消之前选中的两个或者一个,最多也就能选中2个?这具体想要怎么样的效果?

都描述不清楚 怎么帮你写呢?


还是写了个demo  样式就没写了, 你看是不是你需要的

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            .on{
                font-weight: bold;
                color: red;
            }
            
        </style>
        <script src="easyui/js/jquery-1.11.1.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(function(){
                var selector = ".option-tag a";
                $(selector).on("click", function(){
                    var $this = $(this);
                    
                    var selectNum = $(selector).filter(".on").length;//当前选中了几个
                    console.info("selectNum=" + selectNum);
                    //当选中的少于2个的时候 继续选中或取消选择
                    if(selectNum < 2) {
                        if(!$this.hasClass("on")){
                            $this.addClass("on");
                        }else {
                            $this.removeClass("on");
                        }
                    //已经选中2 个 并且选中的是其中的一个  则取消选中    
                    }else if(selectNum==2 &&$this.hasClass("on")) {
                        $this.removeClass("on");
                    }
                    
                    
                    //打印出选中的  可自行操作
                    
                    console.info("当前选中的:")
                    $(selector).filter(".on").each(function(){
                        
                        console.info(" id=" + $(this).data("id") + "  name=" + $(this).text());
                    });
                    
                });
            });
        </script>
    </head>
    <body>
        <div class="form-item clearfix">
                    <label for="">推荐标签:</label>
                    <span class="option-hint">最多可选2个</span>
                    <div class="option-tag">
                            <a data-id="1"  href="javascript:;"class="on" >音乐</a>
                            <a data-id="3" href="javascript:;" class="on" >动漫</a>
                            <a data-id="4" href="javascript:;">演出</a>
                            <a data-id="5" href="javascript:;">活动</a>
                            <a data-id="8" href="javascript:;">粉丝</a>
                            <a data-id="7" href="javascript:;">周边</a>
                            <a data-id="9" href="javascript:;">舞台剧</a>
                    </div>
                </div>
    </body>
</html>
追问
你看图片。就是可以选择两个,怎样按顺序获取到选择的值和ID
追答
我写了demo啊 你复制下去试一下,jquery  自己按位置重新引入
特中戏0H78a
2016-07-07 · TA获得超过292个赞
知道小有建树答主
回答量:293
采纳率:0%
帮助的人:234万
展开全部
$(document).ready(function(){
$('.option-tag a').click(function(){
var flag = false; //是否为取消标签操作
if($(this).hasClass('on')){
$(this).removeClass('on');
flag = true;
}
var res = [];
var tags = $('.option-tag .on');
$(tags).each(function(){
res[$(this).attr('data-id')] = $(this).text();
});
if(tags.length<2 && !flag){
$(this).addClass('on');
res[$(this).attr('data-id')] = $(this).text();
}
console.log(res);
})
})
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a94fe0c
2016-07-07 · 超过60用户采纳过TA的回答
知道小有建树答主
回答量:87
采纳率:0%
帮助的人:86.2万
展开全部

直接上jquery代码了,放进去运行就可以

  $('a').click(function(){
    if(klasson.length<2&&this.className!='on'){
      $(this).addClass('on');
      alert($(this).html())
      alert($(this).attr('data-id'))
    }else if(this.className='on'){
      $(this).removeClass('on')
    }
  })
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9842e3d
2016-07-07 · TA获得超过190个赞
知道小有建树答主
回答量:208
采纳率:100%
帮助的人:110万
展开全部
我就能帮你到这了!
function select(obj){
if($(obj).hasClass("on")){
$(obj).removeClass("on");
}else{
if($("a[class='on']").size()<2){
$(obj).addClass("on");
}
}
var dataid = $(obj).attr("data-id");
var textstr =  $(obj).text();
alert("data-id值:"+dataid+" ;文字内容为:"+textstr);
}

<div class="form-item clearfix">
<label for="">推荐标签:</label>
<span class="option-hint">最多可选2个</span>
<div class="option-tag">
    <a data-id="1" onclick="select(this)" href="javascript:;"class="on" >音乐</a>
                            <a data-id="3" onclick="select(this)" href="javascript:;" class="on" >动漫</a>
                            <a data-id="4" onclick="select(this)" href="javascript:;">演出</a>
                            <a data-id="5" onclick="select(this)" href="javascript:;">活动</a>
                            <a data-id="8" onclick="select(this)" href="javascript:;">粉丝</a>
                            <a data-id="7" onclick="select(this)" href="javascript:;">周边</a>
                            <a data-id="9" onclick="select(this)" href="javascript:;">舞台剧</a>
</div>
</div>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式