从输入字段的文本触发图像创建

时间:2011-05-12 15:14:38

标签: jquery arrays loops append

用户在输入字段中键入单词,单击“开始”按钮后,在层次结构中的某个位置弹出文件名与关键字匹配的小图像。我只是想让某人仔细检查这个脚本,看看它是否有任何错误,因为它似乎不起作用。输入是逗号分隔的列表,因此是修剪。

$(".Go").live('click', function(){
    var words = [];
    jQuery.each(jQuery.trim(jQuery("#input").val()).split(","), function(index, value){
        words.push(jQuery.trim(value));
    });

    for(i=0; i > words.length(); i++){
        $('#Place').append('img').attr("src", words[i]+'.png');
    }
});

感谢Femi,他为我制作了这个剧本。

3 个答案:

答案 0 :(得分:2)

Here's a working demo有各种改进。

您的代码无效的原因是:

  • i > words.length()总是假的,因为您最初将其设置为0,需要<

  • length是一个属性,而不是一个函数。删除括号。

  • 添加新img的语法 element只是附加一个字符串 'IMG'。为了使用append()附加这样的新元素,您需要使用带有函数的重载。

  • 严格来说不是一个错误,但有很多 在那里不必要的代码。 split() 已经返回一个数组,所以循环 通过该数组来放置每个数组 元素进入另一个数组是 多余的。也没有理由 之前新建words数组 分配它。

  • 没有特别的理由可以使用 live()如果你不是动态的话 添加类go的元素。 你可以简单地使用click() 代替。


修改
在回答评论时,这里是add the images to two different containers based on the word的方法。

编辑2:
add the image to a different container based on whether the 'word' is upper case, lower case, numbers or symbols (ie: none of the above!)

答案 1 :(得分:1)

看起来情况有一些错别字

i > words.length()

这永远不会成立,length是属性。应该是:

for(i=0; i < words.length; i++)

答案 2 :(得分:0)

是的,那绝对是一个错字。这是一个很好的指南,纠正错误,以帮助您完成脚本:http://jsfiddle.net/vkSQy/