如何将JS对象转换为jQuery元素?

时间:2014-10-03 10:15:01

标签: javascript jquery

我承认我并非非常知道自己在做什么。但是我试图以OO的方式使用JS。

我有一个输入数据的表单字段。在右侧,我有一个"预览"特价优惠的样子。

当我在输入字段中添加文本时,我希望它在预览中显示。

我尝试使用以下代码,但我没有成功。我认为我在这里缺少一些基本的知识/理解。

mirrorText: function(){
    var self = this;
    $('#title').keyup(function(){
        self.previewObject.title.text($(this).val());
     });
},

previewObject: {
    img: null,
    title: null,
    dateRange: null,
    address: null,

    init: function(){
        self.img = $('.offer-container .promo-img');
        self.title = $('.offer-container h3');
        self.dateRange = $('.offer-container .valid-through');
    }
}

See the full code here(jsfiddle)。

1 个答案:

答案 0 :(得分:3)

你不能在P(段落)中包含DIV,因此找不到元素。我将其更改为另一个div作为示例。

您还在一个我认为应该 this (在init中)的地方引用了self

JSFiddle:http://jsfiddle.net/TrueBlueAussie/w0nn5Ls9/6/

Promo = {

    init: function(){
        var self = this;
        self.previewObject.init();
        self.mirrorText();
    },

    mirrorText: function(){
        var self = this;
        $('#title').keyup(function(){
            self.previewObject.title.html($(this).val());
         });
    },

    previewObject: {
        img: null,
        title: null,
        dateRange: null,
        address: null,

        init: function(){
            this.img = $('.offer-container .promo-img');
            this.title = $('.offer-container h3');
            this.dateRange = $('.offer-container .valid-through');
        }
    }
}    

Promo.init();