查看積分策略說明發表回覆
Discuz! 代碼
提示插入
直接插入
說明訊息

插入粗體文本 插入斜體文本 插入下劃線 置中對齊 插入超級連結 插入信件位址 插入圖像 插入 flash 插入代碼 插入引言 插入列表
刪除線 直線分隔線 虛線分隔線
    
添加文字底框
內容 [字數檢查]:

表情符號

更多 Smilies
字型大小 |||
溫馨提示:本區開放遊客瀏覽。


文章關鍵字 : [功能說明]
(關鍵字可加強搜索準確性, 如關鍵字多於一組, 請以 , 作分隔, e.g. : 阿笨,shiuh,第一笨)

 關閉 URL 識別 | html 禁用
 關閉 表情符號 | 表情符號 可用
 關閉 Discuz! 代碼 | Discuz! 代碼 可用
使用個人簽名
接收新回覆信件通知
推薦放檔網絡空間

檔案(Torent, zip等)
  1. freedl
  2. multiupload
  3. btghost
  4. 便當狗
  5. mediafire
  6. pillowangel
圖片(JPG, GIF等)
  1. hotimg
  2. tinypic
  3. mousems2
  4. imageshack
  5. imm.io
>>>歡迎推薦好用空間


最新10篇文章回顧
ROACH

 發表於 2009-3-27 12:43 PM

我在Javaworld詢問的時候
有個大大提出另外一個作法
也是不錯

window.onload = function() {
    var shower = document.getElementById('shower');
    var confcoks = document.getElementsByName('confcok');
    var tester = document.getElementById('tester');
    tester.onclick = function() {
        alert(shower.innerHTML);
    }
    for ( var i = 0; i < confcoks.length; i++ ) {
        doWhatYouWantToDo(confcoks[i]);
    }
    function doWhatYouWantToDo(cc) {
        var textElmt = document.createTextNode('n' + cc.value);
        var inptElmt = null;
        try {
            inptElmt = document.createElement('<input size=50 type=text name=n' + cc.value + '>');
        } catch (e) {
            inptElmt = document.createElement('input');
            inptElmt.setAttribute('type', 'text');
            inptElmt.setAttribute('name', 'n' + cc.value);
            inptElmt.setAttribute('size', '50');
        }
        cc.checked = false;
        cc.onclick = function() {
            if ( cc.checked ) {
                shower.appendChild(textElmt);
                shower.appendChild(inptElmt);
            } else {
                shower.removeChild(textElmt);
                shower.removeChild(inptElmt);
            }
        }
    }
}
</script>
<body>
<input type="button" value="show innerHTML" id="tester" />
<input type=checkbox value='55' name=confcok />
<input type=checkbox value='44' name=confcok />
您勾選的項目是<div id=shower></div>
</body>


GERRYccc

 發表於 2009-3-19 08:34 PM

ROACH 要不要直接說出你的需求呢?
或許有比用 replace 更好的 solution

我修改了之後如下:
Sorry 我只會用 jQuery的方法。
jQuery.js 你可以下載回本機端,有機會可以找一下這方面資料,很好用的!
順便說明一下我改的方法,
是將加入的資料用一個Tag <span> 包住,並給予 id,
當要移除的時候,就用$('#'+id) 取得該物件,執行remove()函數就可以移除了。

<script src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.js"></script>
<Script>

  function rep(x,y)
   {
    //==傳進來後假如帶55會變成 55<input type='text' name='n55' size='5'>
      xx = "<span id='n"+x+"'>" +x+"<input type='text' name='n"+x+"' size='5'></span>";
  
   if ( y )  //true代表有點就把字串加進去
    document.all.addprod2.innerHTML += xx;
   else
    {
            //==勾勾拿掉的要刪除之前加進去的字串
      //tt = document.all.addprod2.innerHTML;            
      //document.all.addprod2.innerHTML = tt.replace(xx,"");        
        $('#n'+x).remove();
    }
  }  
</Script>

<input type=checkbox value='55' name=confcok onclick='rep(this.value,this.checked)'>
<input type=checkbox value='44' name=confcok onclick='rep(this.value,this.checked)'>
您勾選的項目是<div id=addprod2></div>
[GERRYccc 在  2009-3-19 09:00 PM 作了最後編輯]


Jerrico

 發表於 2009-3-19 03:12 PM

replace(x,y)的第一個參數要用regular expression的方法。


ROACH

 發表於 2009-3-19 12:02 AM

我有個內容是這樣的

<Script>

  function rep(x,y)
   {
    //==傳進來後假如帶55會變成 55<input type='text' name='n55' size='5'>
      xx = x+"<input type='text' name='n"+x+"' size='5'>";     
  
   if ( y )  //true代表有點就把字串加進去
    document.all.addprod2.innerHTML += xx;
   else
    {
            //==勾勾拿掉的要刪除之前加進去的字串
      tt = document.all.addprod2.innerHTML;            
      document.all.addprod2.innerHTML = tt.replace(xx,"");        
    }
  }  
</Script>

<input type=checkbox value='55' name=confcok onclick='rep(this.value,this.checked)'>
<input type=checkbox value='44' name=confcok onclick='rep(this.value,this.checked)'>
您勾選的項目是<div id=addprod2></div>
當我點選checkbox時會看到下面會一直出現
當我把原先勾勾拿掉時,結果卻沒反應??
理論上應該也要把原先那串拿掉才對吧

想的半天搞不懂~~





所在時區為 GMT+8, 現在時間是 2024-5-5 08:29 PM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.019869 second(s), 6 queries , Qzip disabled