使用jQuery设置动态创建的文本框的值

Mas*_*son 9 javascript jquery

使用以下代码

var newDiv = $(document.createElement("div"));
var newTextBox;

newTextBox = $(document.createElement("input"))
    .attr("type", "text")
    .attr("id", "textbox")
    .attr("name", "textbox");

newTextBox.val("text");
newDiv.append(newTextBox);
alert(newDiv.html());
Run Code Online (Sandbox Code Playgroud)

我得到以下内容

<input name="textbox" id="textbox" type="text">
Run Code Online (Sandbox Code Playgroud)

我得到同样的东西

$("#textbox").val("test");
Run Code Online (Sandbox Code Playgroud)

运用

newTextBox = $("<input/>");
Run Code Online (Sandbox Code Playgroud)

也没帮助

我的价值在哪里?

编辑:SOLTUION

所以,进一步在堆栈中我将我构建的DOM转换为字符串,因为 - 就像munch所提到的那样 - 动态值没有被添加到标记中,它没有显示出来.

谢谢您的帮助

mun*_*nch 9

jQuery不会将值放入创建的元​​素生成的html中.双方.attr('value', 'blah').val()得到一个什么样的被输入或在文本输入改变当前值,让你看到这个值,当你在网页上输入或将其提交到服务器.但是,在查看html时你不会看到它.

你仍然可以操纵所有你想要的值,你只是不会看到萤火虫的任何变化,就像你更改类,造型等.

AFAIK,没有使用jQuery也是如此.同样的事情发生在:

document.getElementById('textbox').value = 'my text'; 
Run Code Online (Sandbox Code Playgroud)

value属性仅用于设置服务器的某些值.javascript不需要它.

此外,它取决于您正在使用的输入类型.例如,您将看到value属性更改为隐藏输入,但不会更改文本框.

编辑:

通过将newDiv附加到正文,文本框和值将使用您的代码显示.这是一个测试页面.您可以看到代码和预览发生的事情.但是,由于上述原因,警报并未显示任何"值"属性.