צפיות
תשובות
JavaScript | תמונה וגם על האובייקט math
1. איך ניתן לגרום לסקריפט להציג תמונה, למשל?
כי הקוד הבא לא יעבוד בגלל שהסקריפט חושב שהגרשיים אומרים לו לעצור ולכן לא ימשיך הלאה..
<script type="text/javascript">
document.write("<image src="http://abc.jpg" alt="Klo" />");
</script>
2. שימוש באובייקט math:
Math.random – מוציא מספר רנדומלי בין 0 ל-1
הכפלה ב-5 ועיגול התוצאה למספר שלם – ככה שיכול לצאת: 0, 1, 2, 3, 4
מערך עם 5 ערכים
הצגת ערך אקראי מתוך המערך
<script type="text/javascript">
var randomNumber=Math.floor(Math.random()*5);
var countryName=new Array(5);
countryName[0]="Israel1";
countryName[1]="Israel2";
countryName[2]="Israel3";
countryName[3]="Israel4";
countryName[4]="Israel5";
document.write(countryName[randomNumber]);
</script>
עכשיו, איך ניתן לעשות שאם נבחר למשל countryName[1]="Israel2"; הוא לא יוצג ב-4 פעמים הבאות (כי יש עוד 4)?
(כדי שלא יצאו ברצף או כמעט ברצף)
18 תשובות
ענו לי תשובה אבל אני לא כ"כ מבין בזה..
1 – אתה צריך ליצור מראש DIV או SPAN מסויים בדף, לתת לו ID ואז לגשת אליו עם הJS ולהכניס לו לinnerHTML את הקוד של התמונה.
2. תיצור מערך נפרד, וכל פעם שאתה מציג ערך מסויים תכניס אותו למערכך החדש, ואז תעשה בדיקה כל פעם לפני שאתה מציג אם המספר החדש נמצא במערך. אם כם – תדלג עליו.
אני אנסה לחפש איך עושים את זה, אבל אשמח אם תחסכו לי את זה
תיקון
עכשיו אני לא יודע לעשות רק את 2. עזרה, בבקשה?
אפשר עזרה?
ככה
לגבי 1 כפי שבטח קיבלת תשובה התגית צריכה להיות img ולא image
לגבי 2, אתה צריך ליצור עמודה נוספת במערך (או להמיר את זה לאובייקט) שתעיד אם המספר נבחר כבר או לא, ואם כן – ליצור הגרלה נוספת.
מערך דו מימדי מוגדר כך:
arr[0]=["israel",false];
arr[0,1]=true
אלי ענתבי
לגבי 1
לגבי 1, התבלבלתי כשכתבתי פה, אך שם זו הייתה התגית img וגם לא עבד.
ואז נזכרתי שב-XHTML צריך לכתוב:
<script type="text/javascript">
<!– <![CDATA[
document.write("<img src="http://www.up2me.co.il/images/****.png" alt="SomeThing" />");
// ]]> –>
אז כתבתי, גם לא עבד.
לגבי 2, אחפש מדריך כי לא כ"כ הבנתי ואז אבדוק.
תודה רבה
תיפטר מה-CDATA, זה לא רלוונטי במקרה שלך
הבעיה היא שההמרכאות מתנגשות לך, השורה צריכה להיראות ככה:
document.write('<img src="…" alt="…" />');
OR
document.write("<img src="…" alt="…" />");
אלי ענתבי
תודה רבה!
עוד משהו
בדיוק נזכרתי בשיטה השנייה שכתבת..
עובד מצויין, תודה רבה!
בקשר ל-CDATA, זה בגלל שאני משתמש ב-XHTML…
בקשר למערך דו מימדי, לא מצאתי מדריך לזה, אפשר עזרה בבקשה?
נתתי דוגמא, אם יש שאלה ספציפית בשמחה…
אלי ענתבי
נכון, אבל לא הבנתי
(אחרי הכל, אני סה"כ ילד קטן…)
זה מאוד פשוט
מצאתי מדריך שמסביר מה זה : http://he.wikibooks.org/wiki/Java/%D7%9E%D7%A2%D7%A8%D7%9B%D7%99%D7%9D#.D7.9E.D7.A2.D7.A8.D7.9B.D7.99.D7.9D_.D7.9E.D7.A9.D7.95.D7.9B.D7.9C.D7.9C.D7.99.D7.9D_.D7.99.D7.95.D7.AA.D7.A8
הבעיה היא שהוא בקשר לשפת התכנות JAVA. בכל מקרה הרעיון הוא אותו רעיון. אם עדיין לא תבין שלח תגובה ננסה לעזור לך
תודה, אבל
לא ממש הבנתי, וגם לא הבנתי איך לנצל את זה למה שאני צריך פה…
ונניח אני עושה כך:
new array=plsk();
plsk[1]="hi", "bi";
plsk[2]="lo", "li";
אני קורא ל-bi, כך:
plsk[1][2]
?
לא בידיוק
יש פה מדריך מפורט מאוד : http://www.javascriptkit.com/javatutors/twoarray1.shtml
אם יש בעיה שלח תגובה נעזור לך עד שתבין את החומר עד הסוף
אני חושב שהבנתי, אבל
לא הבנתי איך זה יעזור לי במקרה הזה
אתה צריך לדעת מה הוצג כבר
כמו שאלי אמר, אתה צריך לדעת מה כבר הודפס ומה לא. אז אתה יכול לעשות את זה ע"י משתנה נוסף בוליאני שיכיל TRUE אם הוא הוצג וFALSE אם לא. אתה גם עושה בדיקה אם זה TRUE או FALSE ואם זה FALSE אז אפשר להציג אותו
אם יש בעיה שלח תגובה נעזור לך עד שתצליח
סורי, אני קשה הבנה
נניח שאני אעשה את זה, יש בעיה, כי:
הגדרתי math.floor((math.random)*200)
(נניח שיש 200 איברים במערך).
נניח שהמספר יצא 0, האיבר הראשון במערך יוצג.
עוד פעם 0 – שום דבר לא יוצג.
נניח שגרמתי לזה לרוץ שוב, גם 9 גם 39 וגם 98 יצאו אחרי זה…
יצא פתאום 39 שוב, המספר האקראי שוב ייטען.
ואז בסוף שיוצגו 199 מתוך ה-200 זה ירוץ הרבה יותר לאט….
הבנת?
אני צריך רק כמה הבהרות קטנות…
הפתרון שהוצע יעבוד במקרה שלך? אם לא מה יקרה?
הוא יעבוד אבל יהיה איטי
איך אפשר להוציא איבר אחד ממערך מבלי למחוק את הקוד שיצר אותו? (אני מתכנן משהו אחר)
ואיך אפשר לבדוק אם האיבר במערך שנבחר הוא היחיד באותו המערך?
זה באמת לא פשוט
זאת בעיה לא קלה…תחשוב גם אתה על פתרון אם אני אמצא אז אני אשלח תגובה