2012-11-12 80 views
0

對不起,如果這看起來真的很基本:(我有一個項目,我正在努力,它是一點一點地來到我對JavaScript相當新,所以請原諒我noobness。我有搜索這裏和谷歌,並沒有找到多少關於我的問題,我不能說我的搜索是正確的,反正我的項目會生成一張有1000個縮略圖的表格,每個縮略圖圖像都有一個複選框,它有一個唯一的值和名稱,這1000個縮略圖存在於html頁面被一個iframe調用,我的項目可以生成超過100,000個縮略圖圖像,我使用iframe循環使用,無論如何,我希望用戶能夠在iframe之間保存它們的複選框選擇,我只是開始編碼這個部分。我想我可以通過複選框選擇到數組中的父文檔,這似乎工作!我有一個函數,當用戶檢查獲取值,名稱和iframe頁面的複選框時調用它,然後連接該信息並將其推送到數組。這是功能。this.name複選框onClick返回undefined,什麼都沒有?

parent.genL = new Array(); 
function repGenChk() { 
var chkN = this.name; 
var chkV = this.value; 
var chkP = parent.document.getElementById("selOpt").selectedIndex; 
var chkArr = chkN+":"+chkV+":"+chkP; 
parent.genL.push(chkArr); 
alert(parent.genL[parent.genL]); 
} 

我遇到的問題是當它發出警報時,所有數組項都是這樣的,「:undefined:X」X是頁碼。對於推送到數組的每個項目,「3041:3041:3,1002:1002:1,10294:10294:10 ...」應該看起來像這樣,等等。它唯一得到的是iframe頁面id(在chkP變量中調用的selOpt變量)。我假設我正在處理「這個」錯誤,但我不確定我是如何處理錯誤的?一個例子複選框看起來像這樣...

<input type="checkbox" onclick="repGenChk();" value="9059" name="9059"> 

所以我想它是如何工作的,用戶通過點擊複選框選擇感興趣的縮略圖,該複選框功能執行按下「X:X:X」項到數組後,經過iframe頁面之間的多次檢查之後,一些其他的東西會用這些信息完成。

任何信息,提示,想法和建設性的批評是非常受歡迎的!非常感謝您對StackOverflow社區的幫助!

:)

回答

1

我想你需要將'this'傳遞給repGenChk()。實際上,您沒有將任何內容傳遞給repGenChk(),因此this.name和this.value在repGenChk函數中是未定義的。

對於輸入標籤:

<input type="checkbox" onclick="repGenChk(this);" value="9059" name="9059"> 

對於repGenChk功能:

parent.genL = new Array(); 
function repGenChk(obj) { 
    var chkN = obj.name; 
    var chkV = obj.value; 
    var chkP = parent.document.getElementById("selOpt").selectedIndex; 
    var chkArr = chkN+":"+chkV+":"+chkP; 
    parent.genL.push(chkArr); 
    alert(parent.genL[parent.genL]); 
} 
+0

這工作!非常感謝:)我有一個新的問題,雖然,當我加載一個新的iframe頁面,數組轉儲自己。任何想法,爲什麼這是?有人提到,當文檔自身發生變化時,由於某種原因它會轉儲變量和數組,至少這是我認爲我在谷歌搜索結果上閱讀的內容。有什麼想法嗎?非常感謝:) – 0xhughes

+0

我想通了;)我不得不在主頁面聲明數組,而不是指向父文檔的iframe。時髦,但無論如何,現在一切正常!再次感謝一百萬! – 0xhughes

+0

歡迎您。很高興我能幫上忙! – fbynite