2009-08-17 49 views
15

Tôi biết điều này có lẽ là một câu hỏi đơn giản, nhưng tôi đang cố gắng một tinh chỉnh trong một plugin & js không phải là chuyên môn của tôi và tôi đã bối rối về cách làm như sau:Đẩy giá trị Var vào một mảng

Tôi có một mảng có thể chứa một số giá trị ($ trái cây) tùy thuộc vào những gì người dùng đã nhập. Tôi muốn thêm một biến khác vào mảng không được xác định bằng cách nhập thủ công.

Tôi biết push nên áp dụng ở đây nhưng có vẻ như không hoạt động, tại sao cú pháp sau không hoạt động?

var veggies = "carrot"; 
var fruitvegbasket = $('#fruit').val(); 
fruitvegbasket.push(veggies); 

update: tôi nhận nó làm việc làm này:

var fruit = $('#fruit').val(); 
var veggies = "carrot"; 
fruitvegbasket = new Array(); 
fruitvegbasket.push(fruit+","+veggies); 

không chắc chắn đó là cách tốt nhất để làm điều đó, nhưng nó hoạt động. cảm ơn tất cả!

Trả lời

32

Off đỉnh đầu của tôi Tôi nghĩ rằng nó nên được thực hiện như thế này:

var veggies = "carrot"; 
var fruitvegbasket = []; 
fruitvegbasket.push(veggies); 
6

jQuery là không giống như một mảng. Nếu bạn muốn thêm một cái gì đó ở phần cuối của một đối tượng jQuery, sử dụng:

$('#fruit').append(veggies); 

hoặc để thêm nó vào cuối của một giá trị hình thức như trong ví dụ của bạn:

$('#fruit').val($('#fruit').val()+veggies); 

Trong trường hợp của bạn, fruitvegbasket là một chuỗi chứa giá trị hiện tại là #fruit, không phải là mảng.

jQuery (jquery.com) cho phép thao tác DOM và hàm cụ thể mà bạn gọi là val() trả về thuộc tính value của một phần tử input dưới dạng chuỗi. Bạn không thể đẩy cái gì đó lên một sợi dây.

+0

Bạn không cần một ' '' +' trước khi 'veggies'? – Dan

1

.val() không trả lại mảng từ phần tử DOM: $('#fruit') sẽ tìm phần tử trong tài liệu có ID là #fruit và nhận giá trị của nó (nếu có giá trị).

Các vấn đề liên quan