RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [其他] [求助]如何用Javascript的replace取代有參數的值呢   字型大小:||| 
ROACH
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
減肥中!請勿餵食

十週年紀念徽章(四級)  

 . 積分: 15118
 . 精華: 14
 . 文章: 11766
 . 收花: 140844 支
 . 送花: 6005 支
 . 比例: 0.04
 . 在線: 8869 小時
 . 瀏覽: 85616 頁
 . 註冊: 8000
 . 失蹤: 0
 . 鄉下地方
#1 : 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時會看到下面會一直出現
當我把原先勾勾拿掉時,結果卻沒反應??
理論上應該也要把原先那串拿掉才對吧

想的半天搞不懂~~



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Jerrico
鐵驢友〔高級〕
等級: 6等級: 6


今日心情

 . 積分: 61
 . 文章: 141
 . 收花: 479 支
 . 送花: 1398 支
 . 比例: 2.92
 . 在線: 2432 小時
 . 瀏覽: 8150 頁
 . 註冊: 6218
 . 失蹤: 280
#2 : 2009-3-19 03:12 PM     只看本作者 引言回覆

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


[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
GERRYccc
名譽版主
等級: 8等級: 8
凹~~嗚~~^^y

今日心情

 . 積分: 103
 . 文章: 597
 . 收花: 497 支
 . 送花: 754 支
 . 比例: 1.52
 . 在線: 446 小時
 . 瀏覽: 7391 頁
 . 註冊: 8001
 . 失蹤: 154
 . ~@.@~ TWed2k 星球
#3 : 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 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
ROACH
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
減肥中!請勿餵食

十週年紀念徽章(四級)  

 . 積分: 15118
 . 精華: 14
 . 文章: 11766
 . 收花: 140844 支
 . 送花: 6005 支
 . 比例: 0.04
 . 在線: 8869 小時
 . 瀏覽: 85616 頁
 . 註冊: 8000
 . 失蹤: 0
 . 鄉下地方
#4 : 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>



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



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