我想在表单的每个<input>
元素中添加一些文本。为此,我尝试使用jQuery的 prepend 方法。但它似乎没有用。
在下面的示例中,它适用于form-和p-Elements,但不适用于input-Elements。我做错了什么?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Title</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("form,input,p").each(function(){
$(this).prepend("<p>Hello "+$(this).attr("id")+"</p>");
});
});
</script>
</head>
<body>
<p id="p1">Some text</p>
<form id="frm">
<input type="text" id="foo" />
<input type="text" id="bar" />
<p id="p2">Some more text</p>
</form>
</body>
</html>
答案 0 :(得分:3)
您实际上看到的是正常行为。您不能在input
标记内添加任何内容。因为,基本上input
是void element
。它里面不包含任何contents/elements
。
请在此处阅读:void elements
答案 1 :(得分:2)
它不起作用,因为输入是html中的自闭(无效)实体。不能包含TEXT实体,如表格和parargraphs。 相反,他们使用“价值”属性。
试试这个:
$("input").each(function(){
$(this).val("Hello "+$(this).attr("id")+$(this).val());
});