今天在做广州仲裁委员会的系统时这样的一个需求,需要在页面一加载的时候查询各个项目的案件数,这里有很多个项目,一开始我是这样写的:

代码如下:

    $.get(assignedCaseUrl,function(data){

$("#waitingAllocationSecretary").html("等待部长分配办案秘书("+data.total+")");

if(data.total!=0){

$("#waitingAllocationSecretary").css("background","#f99");

}

});

$.get(collectedCaseUrl,</span><span style="color: #0000ff;">function</span><span style="color: #000000;">(data){</br>
$(</span>"#waitingRegisterCase").html("我收到等待立案("+data.total+")"<span style="color: #000000;">);</br>
</span><span style="color: #0000ff;">if</span>(data.total!=0<span style="color: #000000;">){</br>
$(</span>"#waitingRegisterCase").css("background","#f99"<span style="color: #000000;">);</br>
}</br>
});</br></br> $.get(filedCaseUrl,</span><span style="color: #0000ff;">function</span><span style="color: #000000;">(data){</br>
$(</span>"#waitingOrganize").html("我已立案等待组庭("+data.total+")"<span style="color: #000000;">);</br>
</span><span style="color: #0000ff;">if</span>(data.total!=0<span style="color: #000000;">){</br>
$(</span>"#waitingOrganize").css("background","#F99"<span style="color: #000000;">);</br>
}</br>
});</span></pre>

很显然,对于很多的项目来说,这种简单的重复显得代码特别臃肿,所以我和很多人一样,打算用一个函数封装这些功能,一开始是这样的:

    //获取每一个项目的待处理的案件的数目,传入那个项目的获取数目的url,和那个项目的id
function getNumber(url,id){

$.get(url,function(data){

$("#"+id).append("("+data.total+")");

if(data.total!=0){

$("#"+id).css("background","#f99");

}

});

}

但是程序报错了,我又错误的改成这样:

1
2
3
4
5
6
7
8
9
    //获取每一个项目的待处理的案件的数目,传入那个项目的获取数目的url,和那个项目的id
    function getNumber(url,id){
    $.get(url,function(data){
        $("\"#"+id+"\"").append("("+data.total+")");
        if(data.total!=0){
            $("\"#"+id+"\"").css("background","#f99");
        }
    });
}

显然,这样的方式也是不对的,那到底怎么把我的id值传到我的jq的选择器里面呢,下面看正确的写法:

1
2
3
4
5
6
7
8
9
    //获取每一个项目的待处理的案件的数目,传入那个项目的获取数目的url,和那个项目的id
    function getNumber(url,id){
    $.get(url,function(data){
        $(id).append("("+data.total+")");
        if(data.total!=0){
            $(id).css("background","#f99");
        }
    });
}

调用方式:

1
2
3
getNumber(assignedCaseUrl,waitingAllocationSecretary);
    getNumber(collectedCaseUrl,waitingRegisterCase);
    getNumber(filedCaseUrl,waitingOrganize);

其中id是我页面的id,我在页面调用这个函数的时候传进来的时候这个id已经不是字符串,而是一个jq对象,所以我们在选择器调用这个变量的时候,可以直接把id这个变量传进去,这个错误我犯了两次,所以记一下

2018-06-07更新

小结:如果在for循环中,拼接html需要动态的的id可以用for循环的下标来拼接html的标签然后在做相应的处理具体代码如下:
```html

var pageNum = 1;

//infinite scroll

if($("#infinite-demo-1")[0]) {

  var loading = false;
$(document.body).infinite().on("infinite", function() {
if(loading) return;
loading = true;
pageNum++;
$.ajax({
type : "POST",
cache : false,
url : "orderPayments",
dataType:"json",
async: false,
data :{ "pageNum": pageNum,"currentPartyId":<%=session.getAttribute("currentPartyId")%>},
success : function(data) {
if(data.code == 200){
var currentPage = data.data.page.currentPage;
//
var number = data.data.page.number;
if (number/10 <= currentPage) {
var finish = true;
}
var list = data.data.list;
for(var i in list){
//状态
if (list[i].status == "3" || list[i].status == "5" || list[i].status == "7" || list[i].status == "10") {
var status = "失败";
}else if (list[i].status == "8") {
var status = "成功";
}else{
var status = "处理中";
}
//通知状态
if (list[i].notifyStatus == "0") {
var notifyStatus = "未通知";
}else if (list[i].notifyStatus == "1") {
var notifyStatus = "通知成功";
}else if (list[i].notifyStatus == "2"){
var notifyStatus = "通知失败";
}else if(list[i].notifyStatus == "3"){
var notifyStatus = "无需通知";
}else{
var notifyStatus = "知";
} var supplierOrderId = list[i].supplierOrderId;
//金額
var amount = list[i].amount;
//展示
var str = (amount).toFixed(2) + '';
var intSum = str.substring(0,str.indexOf(".")).replace( /\B(?=(?:\d{3})+$)/g, ',' );//取到整数部分
var dot = str.substring(str.length,str.indexOf("."))//取到小数部分搜索
var ret = intSum + dot;
//詳情展示
var str = (amount).toFixed(4) + '';
var intSum = str.substring(0,str.indexOf(".")).replace( /\B(?=(?:\d{3})+$)/g, ',' );//取到整数部分
var dot = str.substring(str.length,str.indexOf("."))//取到小数部分搜索
var rets = intSum + dot;
//支付方式
var product = list[i].product;
//时间
var dateCreated = list[i].dateCreated;
var date = new Date(dateCreated);
var Y = date.getFullYear() + '-';
var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
var D = date.getDate() + ' ';
var h = date.getHours() + ':';
var m = (date.getMinutes() < 10 ? '0'+(date.getMinutes()) : date.getMinutes() + ':');
var s = (date.getSeconds() < 10 ? '0'+(date.getSeconds()) : date.getSeconds());
//列时间展示
var date = (Y+M+D+h+m+s);
//详情时间展示
var datetow = (Y+M+D);
//費率
var settlementRate = list[i].settlementRate;
var setValue = parseFloat(settlementRate*100).toFixed(2) var notify = list[i].notify;
var merchantOrderId = list[i].merchantOrderId; $("#test").append(
' <div class="e_l_d" id="list" onclick="clickIcon('+"icon"+pageNum+i+')">'+
' <ul class="e_detail js-e_detail">'+
' <li style="word-wrap : break-word;">'+supplierOrderId+'</li>'+
' <li class="e_detail js-e_detail">'+ret+'</li>'+
' <li class="e_detail js-e_detail">'+status+'</li>'+
' <li class="e_detail js-e_detail">'+date+'<span class="iconfont icon-icon-arrow-top" onclick="changeArrow('+"spanId"+pageNum+i+')" id="'+"spanId"+pageNum+i+'"></span> </li>'+
' </ul>'+
' <div class="weui-cells weui-cells_form js-weui-cells_form" id="icon'+pageNum+''+i+'" style="display:none">'+
' <!--详情 -->'+
' <div class="weui-cell">'+
' <div class="weui-cell__hd"><label class="weui-label">订单号</label></div>'+
' <div class="weui-cell__bd">'+
' <input class="weui-input" type="number" pattern="[0-9]*" placeholder="'+supplierOrderId+'"} " disabled="disabled" >'+
' <input class="weui-input" type="hidden" pattern="[0-9]*" name="merchantOrderId" placeholder="'+merchantOrderId+'" disabled="disabled" >'+
' </div>'+
' </div> '+
' <div class="weui-cell">'+
' <div class="weui-cell__hd"><label class="weui-label">订单状态</label></div>'+
' <div class="weui-cell__bd">'+
' <input class="weui-input" type="number" pattern="[0-9]*" placeholder="'+status+'" disabled="disabled">'+
' </div>'+
' </div> '+
' <div class="weui-cell">'+
' <div class="weui-cell__hd"><label class="weui-label">支付方式</label></div>'+
' <div class="weui-cell__bd">'+
' <input class="weui-input" type="number" pattern="[0-9]*" placeholder="'+product.name+'" disabled="disabled">'+
' </div>'+
' </div> '+
' <div class="weui-cell">'+
' <div class="weui-cell__hd"><label class="weui-label">金额</label></div>'+
' <div class="weui-cell__bd">'+
' <input class="weui-input" type="number" pattern="[0-9]*" placeholder="'+rets+'" disabled="disabled">'+
' </div>'+
' </div> '+
' <div class="weui-cell">'+
' <div class="weui-cell__hd"><label class="weui-label">费率</label></div>'+
' <div class="weui-cell__bd">'+
' <input class="weui-input" type="number" pattern="[0-9]*" placeholder="'+setValue+'" disabled="disabled">'+
' </div>'+
' </div> '+
' <div class="weui-cell">'+
' <div class="weui-cell__hd"><label class="weui-label">通知状态</label></div>'+
' <div class="weui-cell__bd">'+
' <input class="weui-input" type="number" pattern="[0-9]*" placeholder="'+notifyStatus+'" disabled="disabled">'+
' </div>'+
' </div> '+
' <div class="weui-cell">'+
' <div class="weui-cell__hd"><label class="weui-label">创建时间</label></div>'+
' <div class="weui-cell__bd">'+
' <input class="weui-input" type="number" pattern="[0-9]*" placeholder="'+datetow+'" disabled="disabled">'+
' </div>'+
' </div> '+
' </div> '+
' </div>');
}
}
loading = false;
if(finish){
$(document.body).destroyInfinite();
$("#infinite-demo-1").attr("style","display:none");
}
},
error: function(jqXHR, textStatus, errorThrown) {
$.hideLoading();
$.alert("系统错误:"+textStatus+",错误代码:"+jqXHR.status);
}
},1500);
});
}; function clickIcon(id){
var display = id.style['display'];
//var name = document.getElementById("spanId").className;
if(display == 'none'){
id.style['display'] = 'block';
}else if(display == 'block'){
id.style['display'] = 'none';
} } function changeArrow(id) {
//console.log("获取到的id:"+id.getAttribute("id"));
var spanId =id.getAttribute("id");
var name = document.getElementById(spanId).className;
if(name == 'iconfont icon-icon-arrow-top'){
//$(spanId).removeAttr("class");
//$(spanId).attr("class","iconfont icon-icon-arrow-down");
document.getElementById(spanId).className = "iconfont icon-icon-arrow-down";
//console.log("执行完毕!");
}
if(name == 'iconfont icon-icon-arrow-down'){
//document.getElementById("spanId").className = "iconfont icon-icon-arrow-top";
//$(spanId).attr("class","iconfont icon-icon-arrow-top");
document.getElementById(spanId).className = "iconfont icon-icon-arrow-top";
}
}
</script>

如何将变量id添加到jquery的选择器中的更多相关文章

  1. jQuery的选择器中的通配符[id^='code'] 【转】

    JQuery 1.选择器 (1)通配符: $("input[id^='code']");//id属性以code开始的所有input标签 $("input[id$='cod ...

  2. jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结

    1.选择器 (1)通配符: $("input[id^='code']");//id属性以code开始的所有input标签 $("input[id$='code']&quo ...

  3. jQuery的选择器中的通配符总结

    1.选择器 (1)通配符: $("input[id^='code']");//id属性以code开始的所有input标签 $("input[id$='code']&quo ...

  4. jQuery的选择器中的通配符[id^='code'] 等示例及说明

    1.选择器 (1)通配符: $("input[id^='code']");//id属性以code开始的所有input标签 $("input[id$='code']&quo ...

  5. jQuery的选择器中的通配符[id^='code']

    1.选择器 (1)通配符: $("input[id^='code']");//id属性以code开始的所有input标签 $("input[id$='code']&quo ...

  6. jQuery的选择器中的通配符[id^='code']或[name^='code']

    这两天在做一个专题的时候遇到了一个通配符的问题 //弹层操作$(function(){ //视频播放 $("a[href^='#video']").each(function(in ...

  7. jQuery属性选择器中加变量

    $(function () { $('#bkhandle').on('click','#bkdel',function () { $.ajax( { url:"{% url 'bkdel' ...

  8. jquery属性选择器中|value和^value的区别

    jquery的属性选择中有两个比较混淆:一个是[attribute^value], 另一个是[attribute|value]. 先看解释: [attribute^value]:选取属性的值以valu ...

  9. jQuery的选择器中的通配符

    (1)通配符: $("input[id^='code']");//id属性以code开始的所有input标签 $("input[id$='code']");// ...

随机推荐

  1. bzoj2427 [HAOI2010]软件安装——缩点+树形DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2427 今天的考试题...好不容易一次写对了树形DP,却没发现有环的情况... 发现自己 ta ...

  2. PCB genesis连孔加除毛刺孔(圆孔与圆孔)实现方法(一)

    一.为什么 连孔加除毛刺孔 原因是 PCB板材中含有玻璃纤维, 毛刺产生位置在于2个孔相交位置,由于此处钻刀受力不均导致纤维切削不断形成毛刺 ,为了解决这个问题:在钻完2个连孔后,在相交处再钻一个孔, ...

  3. Ruby 遍历多个数组

    puts("----------------------------------------") puts("             多重指定 test") ...

  4. Kindergarten Election

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3715 题意:有N个孩子投票选举leader,不能自己选自己.Sheldon ...

  5. [App Store Connect帮助]三、管理 App 和版本(2.7)输入 App 信息:添加 iMessage 信息版 App 的 App 信息

    您可以使用 Messages framework(Messages 框架)来创建贴纸包或 iMessage 信息版 App(可在 iMessage App Store 中获取).可作为独立 App,也 ...

  6. [Swift通天遁地]九、拔剑吧-(8)创建气泡式页面切换效果

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  7. javascript中window,document,body的解释

    解释javascript中window,document,body的区别: window对象表示浏览器中打开的窗口,即是一个浏览器窗口只有一个window对象. document对象是载入浏览器的ht ...

  8. Objective-C copy(转)

    一.从面向对象到Objective-C概览copy 1.面向对象: In object-oriented programming, object copying is creating a copy ...

  9. cocos2dx实现单机版三国杀(一)

    首先需要一个UI交互类 GameUI   -layer 一个游戏驱动类,负责游戏逻辑的循环 暂时定为GameScene- scene GameScene obj 调用update 更新游戏,addch ...

  10. [转]STL之list容器详解

    List 容器 list是C++标准模版库(STL,Standard Template Library)中的部分内容.实际上,list容器就是一个双向链表,可以高效地进行插入删除元素. 使用list容 ...