jquery将选定的选项导出到文本区域,并删除重复行

时间:2013-06-26 07:12:11

标签: jquery export multiple-select

我创建了2个按钮,第一个按钮:从多个选择字段导出到文本区域,第二个按钮:从文本区域删除重复的行

导出按钮仅在我尚未单击删除重复项按钮时才有效,如果我已单击删除重复项按钮,当我再次单击导出按钮时,它将无法再次运行

function eliminateDuplicates(arr) {
    var i,
    len=arr.length,
    out=[],
    obj={};

    for (i=0;i<len;i++) {
        obj[arr[i]]=0;
    }
    for (i in obj) {
        out.push(i);
    }
    return out;
}
$(document).ready(function(){
    $("#remove-duplicates-button").click(function(){
        $("#text-area").val(eliminateDuplicates($("#text-area").val().split("\n")).join("\n"));
    });
    $("#export-button").click(function(){
        var hotels = [];
        $('#hotels :selected').each(function(i, selected){
            hotels[i] = $(selected).val()+"\n";
        });
        $("#text-area").append(hotels);
    });
});

需要帮助才能修复,这是演示http://jsfiddle.net/4dtxf/3/

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

好吧,看起来你有一些语法错误,比如缺少;和逗号而不是它们。更新:并使用val代替append来设置textarea值。

function eliminateDuplicates(arr) {
    var i=0;
    var len=arr.length;
    var out=[];
    var obj={};

    for (i=0;i<len;i++) {
        obj[arr[i]]=0;
    }
    for (i in obj) {
        out.push(i);
    }
    return out;
}

$(document).ready(function(){
    $("#remove-duplicates-button").click(function(){
        $("#text-area").val(eliminateDuplicates($("#text-area").val().split("\n")).join("\n"));
    });
    $("#export-button").click(function(){
        var hotels = [];
        $('#hotels :selected').each(function(i, selected){
            hotels[i] = $(selected).val()+"\n";
        });
        var h=hotels.toString().replace(/,/g,'');
        $("#text-area").val(h);
    });
});

http://jsfiddle.net/4dtxf/13/

答案 1 :(得分:0)

请改用此代码:

function eliminateDuplicates(arr) {
    var i,
    len=arr.length,
    out=[],
    obj={};

    for (i=0;i<len;i++) {
        obj[arr[i]]=0;
    }
    for (i in obj) {
        out.push(i);
    }
    return out;
}
$(document).ready(function(){
    $("#remove-duplicates-button").click(function(){
        $("#text-area").val(eliminateDuplicates($("#text-area").val().split("\n")).join("\n"));
    });
    $("#export-button").click(function(){
        $("#text-area").val("");
        $('#hotels :selected').each(function(i, selected){
            $("#text-area").val($("#text-area").val() + $(selected).val()+"\n");
        });
    });
});

始终使用val()修改或获取文字区域的内容......

http://jsfiddle.net/4dtxf/14/