我在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”。
请帮我。
谢谢。
答案 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);
});
});
答案 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);
});