在$ .get之后更改属性

时间:2014-07-09 07:52:24

标签: javascript php jquery html

我有一个表,其中每行代表一个用户(从数据库填充)。我喜欢它,所以当用户点击其中一行时,某些元素会附加在与所点击的行相关的行的下方。

我已通过以下脚本实现了此效果:

        $('.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'));

感谢。

1 个答案:

答案 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'));
            });