שלח תשובה

זירת השאלות

1241
צפיות
18
תשובות

JavaScript | תמונה וגם על האובייקט math

,‏ 5 באוקטובר, 2011

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. LighTo273 הגיב:

    ענו לי תשובה אבל אני לא כ"כ מבין בזה..
    1 – אתה צריך ליצור מראש DIV או SPAN מסויים בדף, לתת לו ID ואז לגשת אליו עם הJS ולהכניס לו לinnerHTML את הקוד של התמונה.

    2. תיצור מערך נפרד, וכל פעם שאתה מציג ערך מסויים תכניס אותו למערכך החדש, ואז תעשה בדיקה כל פעם לפני שאתה מציג אם המספר החדש נמצא במערך. אם כם – תדלג עליו.

    אני אנסה לחפש איך עושים את זה, אבל אשמח אם תחסכו לי את זה  

  2. LighTo273 הגיב:

    תיקון
    עכשיו אני לא יודע לעשות רק את 2. עזרה, בבקשה?

  3. ככה
    לגבי 1 כפי שבטח קיבלת תשובה התגית צריכה להיות img ולא image

    לגבי 2, אתה צריך ליצור עמודה נוספת במערך (או להמיר את זה לאובייקט) שתעיד אם המספר נבחר כבר או לא, ואם כן – ליצור הגרלה נוספת.

    מערך דו מימדי מוגדר כך:


    arr[0]=["israel",false];

    arr[0,1]=true


    אלי ענתבי

  4. LighTo273 הגיב:

    לגבי 1
    לגבי 1, התבלבלתי כשכתבתי פה, אך שם זו הייתה התגית img וגם לא עבד.
    ואז נזכרתי שב-XHTML צריך לכתוב:
    <script type="text/javascript">
    <!– <![CDATA[
    document.write("<img src="http://www.up2me.co.il/images/****.png&quot; alt="SomeThing" />");
    // ]]> –>
    אז כתבתי, גם לא עבד.

    לגבי 2, אחפש מדריך כי לא כ"כ הבנתי ואז אבדוק.

    תודה רבה

  5. תיפטר מה-CDATA, זה לא רלוונטי במקרה שלך
    הבעיה היא שההמרכאות מתנגשות לך, השורה צריכה להיראות ככה:


    document.write('<img src="…" alt="…" />');

    OR

    document.write("<img src="…" alt="…" />");


    אלי ענתבי

  6. LighTo273 הגיב:

    תודה רבה! עוד משהו
    בדיוק נזכרתי בשיטה השנייה שכתבת..
    עובד מצויין, תודה רבה!

    בקשר ל-CDATA, זה בגלל שאני משתמש ב-XHTML…

    בקשר למערך דו מימדי, לא מצאתי מדריך לזה, אפשר עזרה בבקשה?

  7. נתתי דוגמא, אם יש שאלה ספציפית בשמחה…


    אלי ענתבי

  8. LighTo273 הגיב:

    נכון, אבל לא הבנתי
    (אחרי הכל, אני סה"כ ילד קטן…)

  9. pupv20 הגיב:

    זה מאוד פשוט
    מצאתי מדריך שמסביר מה זה : 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. בכל מקרה הרעיון הוא אותו רעיון. אם עדיין לא תבין שלח תגובה ננסה לעזור לך

  10. LighTo273 הגיב:

    תודה, אבל
    לא ממש הבנתי, וגם לא הבנתי איך לנצל את זה למה שאני צריך פה…

    ונניח אני עושה כך:

    new array=plsk();
    plsk[1]="hi", "bi";
    plsk[2]="lo", "li";

    אני קורא ל-bi, כך:

    plsk[1][2]

    ?

  11. pupv20 הגיב:

    לא בידיוק
    יש פה מדריך מפורט מאוד : http://www.javascriptkit.com/javatutors/twoarray1.shtml
    אם יש בעיה שלח תגובה נעזור לך עד שתבין את החומר עד הסוף

  12. LighTo273 הגיב:

    אני חושב שהבנתי, אבל
    לא הבנתי איך זה יעזור לי במקרה הזה

  13. pupv20 הגיב:

    אתה צריך לדעת מה הוצג כבר
    כמו שאלי אמר, אתה צריך לדעת מה כבר הודפס ומה לא. אז אתה יכול לעשות את זה ע"י משתנה נוסף בוליאני שיכיל TRUE אם הוא הוצג וFALSE אם לא. אתה גם עושה בדיקה אם זה TRUE או FALSE ואם זה FALSE אז אפשר להציג אותו
    אם יש בעיה שלח תגובה נעזור לך עד שתצליח

  14. LighTo273 הגיב:

    סורי, אני קשה הבנה
    נניח שאני אעשה את זה, יש בעיה, כי:
    הגדרתי math.floor((math.random)*200)
    (נניח שיש 200 איברים במערך).

    נניח שהמספר יצא 0, האיבר הראשון במערך יוצג.
    עוד פעם 0 – שום דבר לא יוצג.

    נניח שגרמתי לזה לרוץ שוב, גם 9 גם 39 וגם 98 יצאו אחרי זה…

    יצא פתאום 39 שוב, המספר האקראי שוב ייטען.

    ואז בסוף שיוצגו 199 מתוך ה-200 זה ירוץ הרבה יותר לאט….

    הבנת?

  15. pupv20 הגיב:

    אני צריך רק כמה הבהרות קטנות…
    הפתרון שהוצע יעבוד במקרה שלך? אם לא מה יקרה?

  16. LighTo273 הגיב:

    הוא יעבוד אבל יהיה איטי
    איך אפשר להוציא איבר אחד ממערך מבלי למחוק את הקוד שיצר אותו? (אני מתכנן משהו אחר)
    ואיך אפשר לבדוק אם האיבר במערך שנבחר הוא היחיד באותו המערך?

  17. pupv20 הגיב:

    זה באמת לא פשוט
    זאת בעיה לא קלה…תחשוב גם אתה על פתרון אם אני אמצא אז אני אשלח תגובה

שלח תשובה