Javascript 区分输入范围

Javascript 区分输入范围,javascript,jquery,Javascript,Jquery,我目前正在创建一个由多个HTML范围组成的应用程序 <input id="r1" type="range" min="0" max="100" value="50" step="50" onChange="showValue(this.value)" /> getContent将情绪作为参数,搜索xml文件并返回与情绪匹配的所有结果: function getContent(mood) { $(xmlDoc).find("program").each(function()

我目前正在创建一个由多个HTML范围组成的应用程序

<input id="r1" type="range" min="0" max="100" value="50" step="50" onChange="showValue(this.value)" /> 
getContent
将情绪作为参数,搜索xml文件并返回与情绪匹配的所有结果:

function getContent(mood) {
    $(xmlDoc).find("program").each(function(){
            // this is where all the reading and writing will happe
            if ($(this).find('mood').text() == mood) {
            $("#content").append(
                '<p>Name: ' + $(this).find('name').text() + 
                '<br> Mood: ' + $(this).find('mood').text() + 
                '</p>'
                );
            }
        });
}
函数getContent(mood){
$(xmlDoc).find(“程序”).each(函数(){
//这是所有阅读和写作的地方
if($(this).find('mood').text()==mood){
$(“#内容”)。追加(
“Name:”+$(this.find('Name').text()+
“
情绪:”+$(this).find('Mood').text() “

” ); } }); }

我的目标是创造一个传统的3个范围,持有不同的情绪。如何处理
showValue
函数中的不同范围,使它们都独立工作

您要做的是使所有输入使用相同的功能,但根据其某些属性执行不同的操作,在本例中为
id

function doIt($elem) {
    if ($elem.attr('id') == 'r1') {
        $("#output").html('action1' + $elem.val());
    }
    else if ($elem.attr('id') == 'r2') {
        $("#output").html('action2' + $elem.val());
    }
}

$('input').on('input', function(){
    doIt($(this));
});

您可以在javascript中创建一个数组来保存情绪值

    var moods=[["Agitated","Calm"],["sad","happy"],["angry","smiling"]];
    function showValue(newValue,id) {
    if (newValue == 100) 
    {
        document.getElementById("range").innerHTML = moods[id][1];
        mood = moods[id][1]; 
        resetContent(); 
        getContent(mood);  
    } 
    else if (newValue == 0)
    {
        document.getElementById("range").innerHTML = moods[id][0]; 
        resetContent();
        mood = moods[id][0]; 
        getContent(mood); 
    }
    else
    {
        document.getElementById("range").innerHTML = ""; 
        resetContent(); 
    }
}

演示:

如果答案解决了您的问题,请接受它。否则让我知道你在找什么。这是一个完美的解决方案。非常感谢。作为附带问题;你知道当另一个滑块被更改时,如何将所有其他滑块重置回值50吗?是的,你可以很容易地做到这一点,请检查:如果你不理解代码,请告诉我
    var moods=[["Agitated","Calm"],["sad","happy"],["angry","smiling"]];
    function showValue(newValue,id) {
    if (newValue == 100) 
    {
        document.getElementById("range").innerHTML = moods[id][1];
        mood = moods[id][1]; 
        resetContent(); 
        getContent(mood);  
    } 
    else if (newValue == 0)
    {
        document.getElementById("range").innerHTML = moods[id][0]; 
        resetContent();
        mood = moods[id][0]; 
        getContent(mood); 
    }
    else
    {
        document.getElementById("range").innerHTML = ""; 
        resetContent(); 
    }
}