2009-08-14 5 views
4

Ceci est la suite de Jeditable: how to set parameters based on dom element attributescomment obtenir la valeur de l'élément dom manipulé en utilisant _this_ Jeditable?

S'il vous plaît répondre ici .. voici mon compte « réel » ..

J'essaie d'attribuer des valeurs de paramètres à différents divs sur lequel j'ai permis au jQuery plugin 'Jeditable'. Je ne peux pas le faire fonctionner, je suis sûr que c'est quelque chose de simple .. mais je ne peux pas le comprendre ..

Comment puis-je l'obtenir?

Compte tenu de l'élément DOM suivant:

<div class="editme" id="theone" rel="test"></div> 

Ces divers extraits produisent les textes d'espace réservé dafault suivants pour ce qui précède vide div:

$('.editme').editable('savedata.php',{ 
    placeholder : "txt - "+$(this), 
    } 
); 
// outputs: "txt - [object Object]" 

$('.editme').editable('savedata.php',{ 
placeholder : "txt - "+this, 
} 
); 
// outputs: "txt - [object HTMLDocument]" 

$('.editme').editable('savedata.php',{ 
placeholder : "txt - "+$(this).html(), 
} 
); 
// outputs: "txt - undefined" 

$('.editme').editable('savedata.php',{ 
placeholder : "txt - "+$(this).attr('rel'), 
} 
); 
// outputs: "txt - undefined" 

$('.editme').editable('savedata.php',{ 
placeholder : "txt - "+this.attr('rel'), 
} 
); 
// outputs: "" (NULL/EMPTY STRING, must be due to error) 

Répondre

12

Malheureusement, lorsque vous utilisez this dans votre code, il est le référencement la collection de paramètres et non l'objet jQuery auquel vous essayez d'accéder. Pour accomplir ce que vous essayez de faire, vous aurez besoin de référencer l'objet jQuery en dehors de la collection de paramètres.

Quelque chose comme:

$('.editme').each(function() { 
    var rel = $(this).attr('rel'); 
    $(this).editable('savedata.php', { 
     placeholder : "zzz" + rel, 
     }  
    ); 
}); 
Questions connexes