Jquery替换不适用于内部字符串

时间:2011-02-14 23:24:21

标签: jquery

我需要使用jquery从所有输入字段中替换|||。但它只是取代了第一项。我需要使用正则表达式,但我不知道如何将其添加到字符串。

$(document).ready(function() {
    $("#layerPaper").children("div").each(function() {
        $val = $(this).children('input:text');
        $val.val($val.val().replace('|||', '\"'));
    });
}); 

感谢。

3 个答案:

答案 0 :(得分:4)

如果你的意思是有多个'|||'的实例在元素中,您想要的replace是:

replace(/\|\|\|/g, '\"')); 

答案 1 :(得分:3)

$("#layerPaper > div > input:text").val(function(i,val){ 
    return val.replace('|||', '\"');
});

答案 2 :(得分:0)

您不需要正则表达式,我认为您的问题在于以下内容:

$val.val($val.val().replace('|||', '\"'));

.val()函数仅适用于找到的第一个元素。您可以使用$.each进行切换,相当简单:

$(this).children('input:text').each(function(i,e){
  $(e).val($(e).val().replace('|||','"'));
});