无法使用jQuery更改div的值

时间:2014-06-20 10:53:20

标签: javascript jquery html

我在jQuery中遇到问题: 我写了这段代码:

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
    $("#input").keyup(function() {
        var input = $("#input").val();
        var input = input.replace("d", "f");
        $("#text").val(input);
    });
});
</script>
</head>
<body>
<center>
<input type="text" id="input" />
<div id="text"></div>
</center>
</body>
</html>

这段代码假设检查变量“input”中是否有任何d(从主体中的输入框接收)并用f替换那些d(在我尝试替换之前这只是一个小实验)一种语言的字母到另一种语言的字母)。 但它不起作用,我不知道为什么。 我试图将$("#text").val(input);替换为alert(input);并且它有效,但它只将第一个“d”替换为“f”,第二个和第三个不替换,它们保持“d”。 请帮我。 谢谢。

9 个答案:

答案 0 :(得分:2)

div需要html()text()而不是val()

$("#text").html(input);

答案 1 :(得分:1)

建议:请使用正确的名称来识别
replace:value()到html()

<script>
$(document).ready(function() {
    $("#input").keyup(function() {
        var input = $("#input1").val();
        var input = input.replace("d", "f");
        $("#text").html(input);
    });
});
</script>
</head>
<body>
<center>
<input type="text" id="input1" />
<div id="text1"></div> 

答案 2 :(得分:1)

默认的.replace()行为是仅替换第一个匹配,/ g修饰符(全局)告诉它替换所有出现的匹配。所以你需要编写如下函数。

$(document).ready(function() {
  $("#input").keyup(function() {
    var input = $(this).val().replace(/d/g, "f");        
    $("#text").html(input);
  });
});

Fiddle Demo

答案 3 :(得分:0)

div您需要使用.text()而不是.val(),因为value没有div属性:

$(document).ready(function() {
    $("#input").keyup(function() {
        var input = $("#input").val();
        var input = input.replace("d", "f");
        $("#text").text(input);
    });
});

答案 4 :(得分:0)

对于文字

$("#divname").text("new text");

for html

$("#divname").html("<b>new html</b>")

答案 5 :(得分:0)

尝试使用replaceAll()方法而不是替换。

答案 6 :(得分:0)

您使用非输入标记.text().html()。如果您有输入类型,则只需使用.val();

$("#text").text(input);

答案 7 :(得分:0)

请使用以下jQuery代码:

$(document).ready(function() {
    $("#input").keyup(function() {
        var input = $("#input").val();
        var input1 = input.replace("d", "f");
        $("#text").html(input1);
    });
});

它的工作见demo:http://jsfiddle.net/V2LBu/1/

答案 8 :(得分:0)

replace将仅首次替换字符串。要执行全局替换,请使用以下代码。要将值分配给div,请使用$("#text").html(input);$("#text").text(input);

$("#input").keyup(function () {
    var input = $("#input1").val();
    var input = input.replace(/d/g, "f");
    $("#text").html(input);
});