我似乎遇到了對象「屬性」範圍的問題。我想將Message
對象的每個title
和message
屬性輸出到select
元素,但它是不能工作!我在做什麼錯誤JavaScript對象屬性不在範圍內
<html><head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
function Message(title, message) {
this.title=title;
this.message=message;
this.getTitle = function(){
return this.title;
};
this.getMessage = function(){
return this.message;
};
}
var messages = new Array(
new Message("First Title", "This is the first message"),
new Message("Second Title", "This is another message")
);
function updateSelect() {
$("#cannedMessages_button").empty();
for (c in messages) {
// First try, with getters and setters
$("#cannedMessages_button").append($('<option>', { value : c.getMessage() , text : c.getTitle() }));
// Second try, directly
$("#cannedMessages_button").append($('<option>', { value : c.message , text : c.title }));
}
}
updateSelect();
});
</script>
</head><body>
<form><select id="cannedMessages_button"></select></form>
</body></html>
我可以驗證的foreach實際上是在運行兩個迭代,但我不能獲取值了對象。
您與迭代'對... in'一個數組,你不應該這樣做,但是這是沒有問題的。 'c'不是數組的元素,而是當前的屬性名稱(索引)。請參閱[MDN文檔](https://developer.mozilla.org/en/JavaScript/Reference/Statements/for...in) – 2012-01-30 14:30:00
您應該查看[在jQuery中循環](http://api.jquery。 com/jQuery.each /) – ori 2012-01-30 14:34:09