我有一个表,其中每行代表一个用户(从数据库填充)。我喜欢它,所以当用户点击其中一行时,某些元素会附加在与所点击的行相关的行的下方。
我已通过以下脚本实现了此效果:
$('.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='' />
我现在想要的是通过添加内容(value
之后)更改每个input
的{{1}}属性:
$.get
但它不起作用。我怀疑它是因为元素尚未加载?
执行此操作时我也会$('#name').attr('value', "hello");
:
undefined
有什么方法可以达到预期的效果吗?或者甚至可以轻松地将信息发送到alert($('#name').attr('value'));
?
感谢。
答案 0 :(得分:2)
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'));
});