2016-03-29 6 views
0

Önceden var olan değişken oluşturmak için tamsayı ile tamsayı birleştirin. Yani bir değişkenim var, slide1.jQuery -

var slide1 = $('#slide1');

Nasıl için eşit hale ve sadece değişken, slide1'in yukarıdaki böyle davranmaya bir tamsayı ile 'slayt' gibi bir dize arada kullanabilirsiniz?

Here is my fiddle

showThis('slide' + 1);

, eylem benim sorun/karışıklık kısaltılmış bir versiyonunu görebilirsiniz. Gördüğünüz gibi, birleştirme sonucunun beklediğim gibi saklanmadığını.

Tamamen tabu bir şey yapmaya çalışıyorum?

Şimdiden teşekkürler!

cevap

0

Sizin showThis() fonksiyonu ile yanıt verdiler bir jQuery nesnesi gerektirir ve ne sağlıyor bir dizedir. Yani kod aslında Sen dizeleri ile bir nesnenin özelliklerini erişebilir

showThis($('#slide' + 1));

+1

Cevabınız, başarmaya çalıştığım şey için en anlamlı olanıdır. Gerçek tam kodum, her bir ilgili slayt kimliğiyle eşleşmesi gereken bir statik tamsayı (1) yerine bir dizin değişkeni kullanıyor. Yani teşekkür ederim! :) – sky

-1

Dizileri kullanamazsanız herhangi bir sebep var mı? örneğin: Hatta

var slides = []; 
slides[0] = $('#slide0'); 
slides[1] = $('#slide1'); 
//etc 
showThis(slides[1]); 

ya: Gerçekten bu şekilde yapmak istiyorsanız

var slides = []; 
for(var i = 0; i< 10; i++){ 
    slides[i] = $('#slide' + i); 
} 
showThis(slides[1]); 
3
var slide1 = $('#slide1'); 
var button = $('#button'); 

button.click(function() { 
    showThis('slide' + 1); 
}); 

function showThis(thisSlide) { 
    alert(thisSlide); 
    $("#" + thisSlide).hide(); 
} 
+0

Bu benim durumum için çalışıyor gibi görünüyor. Tam olarak $ ("#" + thisSlide) parçası ne yapıyor? – sky

+0

jquery $ bir dizgiyi girdi olarak bekler, bu nedenle sadece bir '# slide1' dizesi oluşturur ve daha önce oluşturduğunuz değişkeninizi yok sayar. Tek fark, onun dinamik bir kod, çalışmak için tıkladığınız düğmeye bağlı değil. Bu durumda, başka bir düğme olmadığından $ ('# slide1'). Hide() aynı – iagowp

+0

Oh olur, bu yüzden aslında sadece ID öğesinin kendisine ait olan değişkene geri aktarılmaz. Ne de olsa uzun vadede ihtiyacım olan şey değil. Teşekkür ederim! – sky

1

global pencere nesnesine endeksi gerekir. i diğer posterler gibi bir dizi gider ancak

var slide1 = $('#slide1'); 
var button = $('#button'); 

button.click(function() { 
    showThis(window['slide' + 1]); 
}); 

function showThis(thisSlide) { 
    alert(thisSlide); 
    $(thisSlide).hide(); 
} 

0

bu, ama gerçekten değişkenler olmalıdır. gibi, Sen çalışıyoruz yolu değişkenleri erişmek için geçerli bir yol değildir bu

showThis(slide['slide'+1]); 

gibi bir dize ile slide1 erişebilir Nesneyi

var slide = { 
    slide1: $('#slide1'), 
    var button = $('#button'), 
} 

var.