2016-03-29 14 views
0

したがって、変数slide1があるとしましょう。jQuery - 既存の変数を作成するために整数と文字列を連結します。

var slide1 = $('#slide1');

どのように私はにそれを等しくするとちょうど変数、slide1上記のことのように動作する整数で「スライド」などの文字列を連結することができますか?

showThis('slide' + 1);

Here is my fiddleので、あなたは、アクションの私の問題/混乱の短縮バージョンを見ることができます。あなたが見るように、連結の結果は私が期待するように隠れていません。

私は何か完全にタブーをしようとしていますか?

ありがとうございます!

答えて

0

あなたshowThis()機能に対応してきたようにしかし、私は、配列を使用して行くだろうがjQueryオブジェクトを必要とし、何を提供していることは文字列です。だからあなたのコードは、実際にあなたが文字列ではなく、実際には変数とオブジェクトのプロパティにアクセスすることができ、この

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

+1

あなたの答えは、私が達成しようとしていることに対して最も理にかなっています。私の実際の完全なコードは、それぞれのスライドIDと一致する必要がある静的な整数(1)ではなくインデックス変数を使用しています。ありがとう! :) – sky

-1

配列を使用できない理由は何ですか?例えば:

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

かさえ:

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

これは私の場合に機能するようです。 $( "#" + thisSlide)パーツは何をしていますか? – sky

+0

jquery $は文字列を入力として受け取るので、文字列 '#slide1'が生成され、以前に作成された変数は無視されます。唯一の違いは、クリックするボタンに依存せず、動的コードだからです。この場合、他のボタンは存在しないので、$( '#slide1')。hide()は同じです – iagowp

+0

ああ、実際には変数に戻りません。結局のところ長期的に私が必要とするものではありません。ありがとうございました! – sky

1

あなたが本当にそれをこのように行いたい場合は、グローバルwindowオブジェクトへのインデックスにする必要があります。

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

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

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

他のポスターは

0

でなければなりません。 のように、あなたがオブジェクト

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

を持っているあなたは、あなたがしようとしている方法は、変数にアクセスするための有効な方法ではありません。この

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

のような文字列でslide1にアクセスすることができます。

関連する問題