PDA

View Full Version : سوال: سوال



Mr.Robot666
یک شنبه 01 فروردین 1395, 13:30 عصر
کد رو ببنید


$(".slider").find("span:eq(" + i + ")")

چرا به شکل زیر مینویسم جواب نمیده


$(".slider").find("span:eq("i")")

blue.web9
یک شنبه 01 فروردین 1395, 18:28 عصر
تو کد اول i یک متغیر است و مقدار i میتونه هر چیزی باشه (عدد ، حروف و...) و از + برای کنار هم قرار دادن رشته در جاوا اسکریپت استفاده میشه.
تو کد دوم i فقط یک حرف هست (همون i )

Mr.Robot666
دوشنبه 02 فروردین 1395, 03:45 صبح
چرانمیتونیم بنویسیم

eq(i)

blue.web9
دوشنبه 02 فروردین 1395, 19:10 عصر
چون باید طبق قوانینی که jquery مشخص کرده کد بنویسید تا عمل کنه و این حالت خارج از قوانین jquery هست

Mr.Robot666
سه شنبه 03 فروردین 1395, 02:27 صبح
داشتم بر طبق گفته شما کد رو برسی میکردم، به حط زیر رسیدم

$(slides[i])
بنظرم باید شکل آرایه ای جاواسکریپت باشه!
ولی چرا خط زیر جواب میده؟

html(i)
طبق گفته شما نباید جواب بده و به این شکل یاید نوشتش

html(" + i + ")

blue.web9
سه شنبه 03 فروردین 1395, 06:58 صبح
فرض میکنیم i=2 باشه



$(".slider").find("span:eq(" + i + ")")

تو این کد ما تو کلاس slider دنبال span شماره ۲ یعنی مقدار متغییر i هستیم.با + مقدار متغییر i ارسال میکنیم.
در نهایت برای find این مقدار ارسال میشه:
span:eq(2)



$(".slider").find("span:eq("i")")

تو این کد ما تو کلاس slider دنبال span شماره i هستیم.اینجا i عدد نیست ، بلکه خود حرف i هست.
در نهایت برای find این مقدار ارسال میشه:
span:eq(i)

در مورد آرایه جاوااسکرپیت درسته.به ""بیشتر دقت کنید.این مثال ببینید :
فرض کنیم i = "<span>test</span>" باشه


<p id="text"></p>
<script>
$(document).ready(function (){
var i = "<span>test</span>";
$( "#text" ).html( i );
});
</script>

الان مقدار متغیر i یعنی تگ span داخل تگ p قرار میگیره.


$( "#text" ).html(" + i + ");

تو این حالت خود +i+ بعنی به عنوان string داخل تگ p قرار میگیره

ولی اگه بخواهیم تگ span داخل تگ b بزاریم به این صورت مینویسیم.


$( "#text" ).html("<b>" + i + "</b>");


فقط باید به جایگذاری "" دقت کنید.امیدوارم متوجه شده باشید.

Mr.Robot666
چهارشنبه 04 فروردین 1395, 02:35 صبح
طبق گفته خودتون هرچی مابین جفت کوتیشن "" قرار بگیره به منزله رشته هست. اونوقت چجوری خط زیر متغییر شناخته میشه!

$(".slider").find("span:eq(" + i + ")")

blue.web9
چهارشنبه 04 فروردین 1395, 06:43 صبح
find("span:eq(" + i + ")")

درسته رشته هست.هر جفت کوتیشن منظورم بود.فکر میکنم منظورم اشتباه گفتم.ببخشید.
الان تو این کد 2 جفت کوتیشن داریم. تو جفت اول span:eq( به عنوان رشته قرار میگیره و تو جفت دوم فقط ) پرانتر بسته به عنوان رشته قرار میگیره. +i+ این دو رشته رو بامقدار متغییر i که وسطشون قرار میگیره به هم وصل میکنه.

Mr.Robot666
چهارشنبه 04 فروردین 1395, 08:44 صبح
متوجه شدم. خیلی ممنون.
ولی به عنوان رشته قرار نمیگیره، سینتکس ـش هست.

pyramid_ali
پنج شنبه 05 فروردین 1395, 17:29 عصر
شما توی کد دوم دو تا رشته رو بدون اینکه عملی بینشون قرار بگیره کنار هم قرار دادین که این کار توی همه ی زبان ها اشتباه هاست!
توی جاوا اسکریپت با + دو تا رشته رو بهم میچسبون، توی php با . توی برخی از زبان ها مثله c++ با تابع!
شما اگه روی مرورگتون کنسول رو باز کنید ارور دریافت می کنید، نه اینکه این ج.ر ن.شتن جواب نمیده، اینجور نوشتن غطله! مثله اینه که برای جمع 2 و3(2+3=5) بنویسی (23 = 5) و انتظار داشته باشی که معلم منظورتو متوجه بشه!