我有一个表,其中每一行代表一个用户(从数据库填充)。我希望当用户单击这些行之一时,一些元素会附加到与单击的行相关的行下方。
我通过以下脚本实现了这种效果:
$('.data-table tr').click(function () {
$(this).after('<tr class="trow"><td colspan="6">' +
'<div class="trowdiv"></div>' +
'</td></tr>'
);
$.get("file.php", function (data) {
$( ".trowdiv" ).html( data );
});
}
});
file.php
只是一些 HTML 元素:
<label for="name">Name:</label>
<input type="text" id="name" name="name" maxlength="255" value='' />
<br/>
<label for="email">Email Address:</label>
<input type="text" id="email" name="email" maxlength="100" value='' />
我现在想要的是通过添加一些内容(在$.get
之后)来更改每个input
的value
属性,例如:
$('#name').attr('value', "hello");
但是这不起作用。我怀疑是因为元素还没有加载?
执行此操作时,我还会得到未定义
:
alert($('#name').attr('value'));
有什么办法可以达到我想要的结果吗?或者甚至是一种将信息发送到 file.php
的简单方法?
谢谢。
最佳答案
Javascript 是异步的。要更改属性,您需要确保 html 已附加/前置或加载。因此,您需要将您的
$('#name').attr('value', "hello");
或
alert($('#name').attr('value'));
像这样进入$.get()
$.get("file.php", function (data) {
$( ".trowdiv" ).html( data );
$('#name').attr('value', "hello");
alert($('#name').attr('value'));
});
关于javascript - 在 $.get 之后更改属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24648158/