2011-08-16 77 views
1

在遍歷AA組輸入嵌套到羣體和部門, 我想嘗試捕捉數據組和部分組,但需要一推......jQuery的 - 捕獲數據屬性

<script src="jquery.mobile/jquery.js"></script> 

<div id="groupA" data-group="A" class="preGroups"> 

    <div id="section-A1" data-section="1"> 
    <input name="SRPR1" type="text"> 
    <input name="SRPR2" type="text"> 
    </div> 

    <div id="section-A2" data-section="2"> 
    <input name="SRPR1" type="text"> 
    <input name="SRPR2" type="text"> 
    </div> 

    <div id="section-A3" data-section="3"> 
    <input name="SRPR1" type="text"> 
    <input name="SRPR2" type="text"> 
    </div> 

    <div id="section-A4" data-section="4"> 
    <input name="SRPR1" type="text"> 
    <input name="SRPR2" type="text"> 
    </div> 
</div> 

<div id="groupB" data-group="B" class="preGroups"> 

    <div id="section-B1" data-section="1"> 
    <input name="SRPR1" type="text" value="1"> 
    <input name="SRPR2" type="text"value="1"> 
    </div> 

    <div id="section-B2" data-section="2"> 
    <input name="SRPR1" type="text"value="1"> 
    <input name="SRPR2" type="text"> 
    </div> 

    <div id="section-B3" data-section="3"> 
    <input name="SRPR1" type="text"> 
    <input name="SRPR2" type="text"> 
    </div> 
</div> 

<script>  


    var currentGroup = ""; 
    var currentSection = ""; 

    // iterate through each group in groups 
    groups = $('div[id^="group"]'); 
    $.each(groups, function(key, group) { 
     currentGroup = group.getAttribute('group'); 
     // iterate through each section in group 
     sections = $(group).find('div[id^="section"]'); 
     $.each(sections, function(key, section) { 
      currentSection = section.getAttribute('section'); 

      var inputs = $(section).find("input"); 
      inputs.each(function(){ 

       fnValidateDetails(currentGroup, currentSection, this.name, this.value) 
      }) 
     }); 
    }); 

function fnValidateDetails(currentGroup, currentSection, theName, theValue){ 

    console.log(currentGroup, currentSection, theName, theValue); 

} 

</script> 

回答

2

您可以訪問數據屬性中的使用jQuery兩種方法之一:

$('div').data('group'); 
$('div').attr('data-group'); 

$('div').data('section'); 
$('div').attr('data-section'); 

不知道如果這足以讓你。對於「捕獲」你的意思有點模糊。

+0

正好。謝謝! –

+0

太好了。那麼獎勵我的回答如何回答:) – maxedison

1

jQuery.attr()怎麼辦?

$('#element').attr('data-blabla'); 
+0

這也適用。 –

0

由於您在標記中使用了data屬性,因此您可以使用jQuerydata方法訪問它們。另外我已經將jquery對象緩存到局部變量中,這些變量在循環中以倍數使用,這有助於提高性能。

​​

;

+0

@mustapha george - 你試過這個嗎? – ShankarSangoli

+0

哇。你在第一行做什麼? –