2014年11月10日 星期一

jquery紀錄,當id值為動態又有父id需要對應,如何抓出對應關係

在工作上碰到一個小問題,在這邊做紀錄

jquery可以抓出現有的欄位資料,一般我都是根據id,name值下去抓

但這次是應用在購物車上,有加購的功能

但購物清單上的id值是動態的,所以我去找了一些首先要模糊比對的資料



[属性名称] 匹配包含给定属性的元素
[att=value] 匹配包含给定属性的元素 (大小写区分)
[att*=value] 模糊匹配
[att!=value] 不能是这个值
[att$=value] 结尾是这个值
[att^=value] 开头是这个值
[att1][att2][att3]... 匹配多个属性条件中的一个

var list=$('li[id^=compare_prod_list_]');

參考連結: 點我


找到上面文章後,才知道如何作模糊比對

但在做父類別列表時,要怎麼讓加購商品知道主商品的列表編號?

後來想到自定一個標籤後,用jquery的attr抓取每個加購商品帶的主商品編號即可

sn_num = $(this).attr("data"); //抓出裡面data的值

像這樣的寫法,接著就可以用each將加購商品的項目帶進來判斷


function check_main_plus() {
var sn_num=0; //主產品的列表編號

$("select[id^='plus_amount_']").each(function(){ //模糊找尋id中有plus_amount_的欄位
sn_num = $(this).attr("data"); //抓出裡面data的值
if(this.value > $('#quantity_'+sn_num).val()) { //比對select 中的值是否附合主產品的數量
$(this).val($('#quantity_'+sn_num).val()); //強制更改最大值為主產品數量 
} //if(this.value > $('#quantity_'+sn_num).val()) { //比對select 中的值是否附合主產品的數量

}); //$("select[id^='plus_amount_']").each(function(){ //模糊找尋id中有plus_amount_的欄位

} //function check_main_plus() {


以上的function即可以檢查「加購商品」數量是否有超過「主商品」數量





沒有留言 :

張貼留言