jQuery - 显示变量,而不是文本字符串

时间:2014-02-21 21:25:36

标签: javascript jquery string variables escaping

我将变量设置为.html();

<div />

变量是另一个变量的名称。我希望它显示另一个变量的内容,但它只显示另一个变量的名称。

如何强制它显示变量内容而不仅仅是文字文本字符串?

var clothing = 'dogeshop cryptoshop doge_clothing fyrstikken the_molly_machine peace_and_love moolah_market shibe_swag undieguys urban_graff kravshop got_doge mean_elephant the_dogedoor_store';


setInterval( function() {
    var term = $("input").val();
    $("#results").html(term);
}, 100);

当用户在$("input");中输入“服装”时,“服装”变量的内容应显示在$("#results"); <div />中。相反,它只是说'衣服'。

5 个答案:

答案 0 :(得分:1)

http://jsfiddle.net/z29AR/

var clothing = 'dogeshop cryptoshop doge_clothing fyrstikken the_molly_machine peace_and_love moolah_market shibe_swag undieguys urban_graff kravshop got_doge mean_elephant the_dogedoor_store';

$('input:text').on('input', function() {
    var term = $("input").val();
    if ( term == 'clothing'){
        $("#results").html(clothing);
    }
});

答案 1 :(得分:1)

我知道如何解决这个问题的唯一方法是使用eval

$("#results").html(eval(term))

但你真的是shouldn't want to do that。 :)

答案 2 :(得分:1)

另一种方法是使用对象属性,比如

var obj = {};
obj.clothing = 'dogeshop cryptoshop doge_clothing fyrstikken the_molly_machine peace_and_love moolah_market shibe_swag undieguys urban_graff kravshop got_doge mean_elephant the_dogedoor_store';


setInterval( function() {
    var term = $("input").val();
    $("#results").html(obj[term]);
}, 100);

这是小提琴:http://jsfiddle.net/ZL7EQ/

答案 3 :(得分:1)

使用字典。

// store strings in an object so you can look them up by key
var dict = {
    clothing: 'dogeshop ...',
    anotherKey: '...'
};

// update the result when the input changes
$('input').on('change', function() {
    var result = dict[this.value]; // make sure the key exists

    if (result) {
        $('#results').val(result); // update the results
    }
});

答案 4 :(得分:0)

我在使用jQuery时自己犯了这个错误。

尝试改为:

 $("#results").text(term);

不确定你有什么间隔。您只需使用更改事件更改#results即可。