1

私は次のコードを持っています:

$('document').ready(function() {

    $('#container').append('<input type="text" id="mystuff"><a href="javascript:void(0);" onclick="javascript:showStuff();">Show stuff</a>');
});

function showStuff() {

    alert($('#mystuff').val());
}

問題はundefined、おそらく要素mystuffが動的に作成されるため、アラートに と表示されることです。以前に動的に作成された要素で同様の問題が発生しました。そのような場合は使用できます.on()が、この場合は、val() を変数に格納したいだけなので、使用できないと思います。バインドしたいイベントがありませんmystuff...

これを解決する方法はありますか?

4

5 に答える 5

0

問題は、コンテナの値属性を定義していないことです。このコードで:

$('#container').append('<input type="text" id="mystuff" value="info"><a   
href="javascript:void(0);"      
onclick="javascript:showStuff();">Show stuff</a>');

値を取得します。

alert(document.getElementById("コンテナ").innerHTML);

#container 内のものを返します。テスト済み!

于 2013-08-15T14:07:39.890 に答える
0

以下はクロムで動作します:

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
$('document').ready(function() {

    $('#container').append('<input type="text" id="mystuff"><a href="javascript:void(0);" onclick="javascript:showStuff();">Show stuff</a>');
});

function showStuff() {

    alert($('#mystuff').val());
}
</script>
</head>
<body>
<div id="container"></div>
</body>
</html>

ただし、通常は、引用符なしで $(document) を使用します。

于 2013-08-15T14:03:42.153 に答える
0

JQuery の使用を楽しみたい場合は、面倒なインライン Javascript をすべて取り除きます。

$('document').ready(function() {

    $('#container').append('<input type="text" id="mystuff" /><a id="show_stuff" href="#">Show stuff</a>');
    $("#show_stuff").click(showStuff);
});

function showStuff() {

    alert($('#mystuff').val());
}

もっときれいに!

于 2013-08-15T13:59:31.987 に答える