2012-05-29 134 views
4

結腸我沒有訪問以下HTML其顯示的動態使用一些外部JS。移除/刪除「:」在一個HTML頁面

<td class="quantitybox"> 
    <span class="qty">Quantity</span> 
    <br style="clear:both;"> 
    :<input type="text" value="1" onkeydown="javascript:QtyEnabledAddToCart();" maxlength="8" size="3" name="QTY.1121309" class="v65-productdetail-cartqty"> 
</td> 

我想的是:被刪除後/刪除使用jQuery,但我沒有得到什麼處理程序應該使用的,應當我申請一個類來<br>動態,做一些它

+0

我不明白你的問題,你想要什麼? – gdoron

+0

你可以看到「:」冒號
後,我想它會動態地使用JQuery – user580950

+0

只是做'$(「td.quantitybox」)刪除HTML($(本)的.html ().replace(「:<」,「<」));' – mattytommo

回答

5

jQuery的方式但regex

$('td.quantitybox').contents().filter(function(){  
    return this.nodeType === 3 && // textNode 
      $.trim(this.nodeValue) === ":"; 
}).remove(); 

或者乾脆改變textnode爲空字符串:

$('td.quantitybox').contents().filter(function(){  
    return this.nodeType === 3 && // textNode 
      $.trim(this.nodeValue) === ":"; 
})[0].nodeValue = ""; 

如果你有colons- :多個textnode要刪除:

$('td.quantitybox').contents().filter(function() { 
    return this.nodeType === 3 && // textNode 
    $.trim(this.nodeValue) === ":"; 
}).each(function() { 
    this.nodeValue = ""; 
});​ 

如果你想與regex做到這一點,並意識到它的風險:

$('td.quantitybox').html(function(i, old){ 
    return old.replace(/:\s*</, '<'); 
}); 

注意,在這個問題你的HTML代碼編輯的內容,所以我加了白色的空間,正則表達式所以它會與最初的標記以及工作....

+0

看起來像它應該工作... – Christoph

+1

@Christoph。謝謝,我也這麼認爲... :) – gdoron

1

我建議,雖然目前未經測試,如下:

$('td').each(function() { 
    var i = this.getElementsByTagName('input'), 
     text = i.previousSibling.nodeValue.replace(/:/g, ''); 
    i.previousSibling.nodeValue = text; 
});​ 
+0

+1。 [這個答案](http://stackoverflow.com/a/10798487/601179)看起來完全像你的答案,但用'map',你能向我解釋他想做什麼嗎? – gdoron

+0

他所做的顯然是嘗試使用['map()'](http://api.jquery.com/map)創建一個由元素文本組成的數組。雖然我不認爲它會工作,因爲(像'過濾器()')我認爲,'圖()'需要用於填充該數組一個'返回variableOrExpressionName'聲明。 –

0
$(document).ready(function(){ 
    var texts = $('input').map(function(){ 
     var text = this.previousSibling.nodeValue; 
     this.previousSibling.nodeValue = text.replace(/:/g, ''); 
    }); 
});​ 
+0

什麼是'map'在這裏做?你想做什麼? – gdoron

0

另一種解決方案。例如:http://jsfiddle.net/k25yx/1/

$(document).ready(function() { 

    // Cache Object 
    var obj = $('.quantitybox'); 

    obj.each(function(){ 
     var that = $(this); 

     // remove br   
     that.find('br').remove(); 

     // trim colon 
     that.html(function(i, val) { 
      return val.replace(':', ''); 
     }); 
    }) 
});