Obtenir initial sélecteur à l'intérieur de plugin jquery

J'ai eu de l'aide plus tôt concernant les sélecteurs, mais je suis coincé avec celui-ci.

Disons que vous avez un plugin comme celui-ci

$('#box').customplugin();

comment puis-je obtenir le n ° de la boîte comme une chaîne de caractères dans le plugin?
Vous ne savez pas si c'est la bonne manière de faire, et de toute autre solution serait très bien aussi.

Considérant #est une boîte sélectionnez le menu déroulant,

Le problème, je vais avoir, c'est si je ne l'ordinaire javascript

$('#box').val(x);

La bonne valeur de l'option est sélectionné,

mais si j'essaie la même chose à l'intérieur d'un plugin

.....
this.each(function() {
var $this = $(this);


$this.val(x);

le dernier code n'a pas vraiment quoi que ce soit.

Je remarque que je vais avoir de la difficulté à cibler #zone à l'intérieur du plugin parce que c'est un objet et non pas une chaîne...

Toute aide serait appréciée.

Merci!

Edit:: Mettre dans le code, je travaille pour une meilleure compréhension

(function($){
$.fn.customSelect = function(options) {
var defaults = {
myClass : 'mySelect'
};
var settings = $.extend({}, defaults, options);
this.each(function() {
//Var          
var $this = $(this);
var thisOpts = $('option',$this);
var thisSelected = $this[0].selectedIndex;
var options_clone = '';
$this.hide();
options_clone += '<li ><span>'+thisOpts[thisSelected].text+'</span><ul>'
for (var index in thisOpts) {
//Check to see if option has any text, and that the value is not undefined
if(thisOpts[index].text && thisOpts[index].value != undefined) {
options_clone += '<li pln"> + thisOpts[index].value + '"><span>' + thisOpts[index].text + '</span></li>'
}
}
options_clone += '</ul></li>';
var mySelect = $('<ul class="' + settings.myClass + '">').html(options_clone); //Insert Clone Options into Container UL
$this.after(mySelect); //Insert Clone after Original
var selectWidth = $this.next('ul').find('ul').outerWidth(); //Get width of dropdown before hiding
$this.next('ul').find('ul').hide(); //Hide dropdown portion
$this.next('ul').css('width',selectWidth);
//on click, show dropdown
$this.next('ul').find('span').first().click(function(){
$this.next('ul').find('ul').toggle();
});
//on click, change top value, select hidden form, close dropdown
$this.next('ul').find('ul span').click(function(){
$(this).closest('ul').children().removeClass('selected');
$(this).parent().addClass("selected");
selection = $(this).parent().attr('rel');
selectedText = $(this).text();
$(this).closest('ul').prev().html(selectedText);
$this.val(selection); //This is what i can't get to work
$(this).closest('ul').hide();
});
});
//returns the jQuery object to allow for chainability.
return this;
}
avez-vous essayé this.val(x);...?
$this.val() devrait fonctionner, peut-être le selection valeur est défectueux, essayé d'alerte/de la console.enregistrement?
hm.. ce qui s'est passé quand j'avais $.val(sélection) fini par changer tous les sélectionnez l'option valeur à 3 ou quelle que soit la sélection..

OriginalL'auteur eek meek | 2011-03-29