J'ai un document XML ainsi:reliure, sélection et boucle à travers les données XML avec jQuery
<tab id="1">
<name>Individual</name>
<coverLevel>
<level id="1">
<month>20</month>
<week>5</week>
</level>
<level id="2">
<month>40</month>
<week>10</week>
</level>
<level id="3">
<month>80</month>
<week>20</week>
</level>
</coverLevel>
</tab>
<tab id="2">
<name>Couple</name>
<coverLevel>
<level id="1">
<month>40</month>
<week>10</week>
</level>
<level id="2">
<month>80</month>
<week>20</week>
</level>
<level id="3">
<month>160</month>
<week>40</week>
</level>
</coverLevel>
</tab>
<tab id="3">
<name>Family</name>
<coverLevel>
<level id="1">
<month>80</month>
<week>20</week>
</level>
<level id="2">
<month>160</month>
<week>40</week>
</level>
<level id="3">
<month>320</month>
<week>80</week>
</level>
</coverLevel>
</tab>
<tab id="4">
<name>Single parent family</name>
<coverLevel>
<level id="1">
<month>40</month>
<week>10</week>
</level>
<level id="2">
<month>80</month>
<week>20</week>
</level>
<level id="3">
<month>160</month>
<week>40</week>
</level>
</coverLevel>
</tab>
Et jQuery qui appelle ledit document XML et met à jour dynamiquement les valeurs onClick d'un colonne de table.
$(document).ready(function(){
$('table#benefit > thead > tr > th, table#benefit > thead > tr > th > a, table#benefit > tbody > tr > td').click(function(){
var colIndex = $(this).parent().children().index ($(this));
var tabPosition = $('ul#coverTabs > li').index ($('.currentTab'));
var tabPosition = tabPosition + 1
if (colIndex != 0) {
$.get('/cash-plan-quote/table.xml', function(data){
$(data).find('level').each(function() {
var $level = $(this);
var $levelID = $level.attr('id');
if (colIndex == $levelID) {
var coverLevel = '<span>Level ' + $levelID + ' benefits</span>';
var monthCost = '<h5>£' + $level.find('month').text() + '</h5>';
var weekCost = '<h6>£' + $level.find('week').text() + '</h6>';
$('div.costPanel > h2 > span').replaceWith($(coverLevel));
$('div.costPanel > div.costs > h5').replaceWith($(monthCost));
$('div.costPanel > div.costs > h6').replaceWith($(weekCost));
};
});
});
return false;
};
});
});
Ce que je voudrais faire est de récupérer les données dans le document XML pour l'onglet en cours:
var tabPosition = $('ul#coverTabs > li').index ($('.currentTab'));
var tabPosition = tabPosition + 1
Ainsi, lorsqu'un utilisateur clique sur un onglet les valeurs de niveau XML de l'onglet sera appelé. Je pensais que je pourrais le faire en trouvant la position de l'onglet et ensuite l'utiliser pour récupérer les données de cet onglet dans le document XML.
Le code HTML pour les onglets:
<ul id="coverTabs">
<li class="currentTab"><a href="#">Individual</a></li>
<li><a href="#">Couple</a></li>
<li><a href="#">Family</a></li>
<li><a href="#">Single parent family</a></li>
</ul>
Et un peu plus jQuery pour définir le style de l'onglet en cours:
$(".currentTab").removeClass("currentTab");
$(this).addClass("currentTab");