0

私はテーブルを持っています。ユーザーがテーブル セルをクリックすると、jquery はセル内にある子 (input タグ) の id 属性と name 属性を取得します。個々の変数に警告すると、それらは正しく警告します。ただし、値を配列に返し、スクリプトのどこで問題が発生したかを警告します。たとえば、別の関数で値をアラートすると、[object HTMLTableCellElement] が表示されます。

スクリプトの先頭の document.ready. id と name の適切な値を別の匿名関数または関数に取得できないのはなぜですか。

<script>
    $(document).ready(function() {
        var id = 0;
        var name = 0;
        var values2 = [];

        //when a table cell is clicked
        values2 = $('table tr td').click(function() { 

            //grab the id attribute of the table cell's child input tags that have a class of hidden
            id = $(this).children("input[class='hidden']").attr("id");
            alert( id ); //<----- alerts id properly (output for example is 25)

            //grab the name attribute of the table cell's child input tags that have a class of hidden
            name = $(this).children("input[class='hidden']").attr("name");
            alert( name ); //<----- alerts id properly (output for example is firstinput)

            return [id , name]; //<------ here is where I try to return both these values in to an array
                                // so that I can use the values else where in the script.  However 
                                // I am not able to use the values
        });

        $( "#nameForm" ).submit(function( event ) {
            // Stop form from submitting normally
            event.preventDefault();
            alert(values2[0]);  // <----alerts [objectHTMLtableCellElement]
                                //this should alert ID

            var posting = $.post( "comments.php", $('#nameForm').serialize(), function(data) {
                $('#result').html(data);
            });

            return false;
            // $('#result').html(term);
        });
    });
</script>
4

2 に答える 2