2017-05-10 91 views
0

我有多個複選框,每個循環都有不同的數據屬性。通過JQuery傳遞選中的複選框數據屬性

<input data-pid="<?php echo $name ?>" class="live" name="live" id="live" type="checkbox" value=""> 

在JQuery中,我試圖獲取checked選項的數據屬性以及它是否被選中。

$(".live").click(function() { 

    var n = this.id 
    var a = this.attr("data-pid"); 

我似乎沒有能夠拿到身份證或ATTR

+0

在你的功能,你可以做'或如何對數據屬性 –

+0

var a = this.attr(「data-pid」);'var'= $(this).attr(「data-pid」);'' –

+0

變化'this.checked',看它是否被選中不 –

回答

1

https://jsfiddle.net/nydo9ues/1/

$('.live').change(function(){ 
var chkbx=$(this); 
console.log(chkbx.data());//Will give you a JSON Object with your data https://api.jquery.com/data/ 
console.log(chkbx.attr('id'));//id of the element changing 
console.log(chkbx.is(':checked'));//Status of the checkbox 


}); 
0

attr()是一個jQuery方法,所以你必須使用$(this).attr()this.attr()

$(function() { 
 
    $(".live").change(function() { 
 
    var n = this.id 
 
    var a = $(this).attr("data-pid"); 
 
    console.log('id=', n, ' pid=', a , ' checked=', this.checked) 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" data-pid="1" id="live_1" class="live"> 
 
<input type="checkbox" data-pid="2" id="live_2" class="live"> 
 
<input type="checkbox" data-pid="3" id="live_3" class="live"> 
 
<input type="checkbox" data-pid="4" id="live_4" class="live"> 
 
<input type="checkbox" data-pid="5" id="live_5" class="live">

使用您的控制檯檢查錯誤。你應該看到一個this.attr()不是一個函數