我似乎遇到了对象“属性”范围的问题。我想将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