-1

Q1: 私のポイントは、配列の行数と同じ数のボタンを作成することです。私はここにいくつかのエラーがあります:s

<script type="text/javascript">
var myArray = [];

$('#button').click(function(){

var value1 = $('#value1').val();
var value2 = $('#value1').val();
var value3 = $('#value1').val();
var newArray = []; 
var newArray[0] = value1;
var newArray[1] = value2;
var newArray[2] = value3;
myArray.push(newArray);

$("#save").append(
    $("<button>").click(function() {
        myFunction.apply(null, myArray);
    }).text("Click me!")
   );
   });

});

function myFunction(value1,value2,value3)
{
var jsonData = $.ajax({
url: "file.php?value1=" + value1 + "&value2=" + value2 + "&value3=" + value3
dataType: "json",
async: false
}).responseText;
(...)
}
//edited: problem maybe found. I said buttons dont do anything because of this.
OUTPUT: file.php?value1=paul,23,USA&value2=undefined&value3=undefined
//it seems that value1 gets all values :s
</script>


<div id ="save"></div>

次のようなものを返すソリューションを探しています:

例えば:

<!--<button onclick="myFunction(name,age,country)">Click me</button>-->
<button onclick="myFunction(paul,23,USA)">Click me</button>
<button onclick="myFunction(john,23,USA)">Click me</button>

詳細を追加してコードを編集しました

4

2 に答える 2

1

これは、myArrayの最初の項目が配列(newArray)であるためです。1つの配列パラメータのみを呼び出す必要があります。以下のように関数を呼び出してみてください。これで機能するはずです。

myFunction.apply(null, newArray);
//or
myFunction.apply(null, [value1,value2,value3]);
于 2012-11-26T14:33:22.050 に答える
0

これが役立つと思います:

    <div  id="save">
    </div>      
    <script type="text/javascript">
        function addButtons(myArray){
            for(i=0;i<myArray.length;i++)
            {
                var button = $('<button id="btn_'+i+'" onclick="myFunction(this);">Click me</button>')
                $(button).data('details',myArray[i]).appendTo("#save");
            }
        }
        function myFunction(element){
            alert($(element).data('details'));
        }
    </script>
于 2012-11-26T14:35:57.200 に答える