主題: [其他] [求助]如何用Javascript的replace取代有參數的值呢 [打印本頁]
發表人:
ROACH 時間: 2009-3-19 12:02 AM 主題: [求助]如何用Javascript的replace取代有參數的值呢
我有個內容是這樣的
<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時會看到下面會一直出現
當我把原先勾勾拿掉時,結果卻沒反應??
理論上應該也要把原先那串拿掉才對吧
想的半天搞不懂~~
發表人:
Jerrico 時間: 2009-3-19 03:12 PM
replace(x,y)的第一個參數要用regular expression的方法。
發表人:
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 作了最後編輯]
發表人:
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>
歡迎光臨 TWed2k (http://twed2k.org/) |
Powered by Discuz! 4.1.0 |