Javascript 在函数中将HTML5数据属性作为参数传递

Javascript 在函数中将HTML5数据属性作为参数传递,javascript,html,oop,custom-data-attribute,Javascript,Html,Oop,Custom Data Attribute,我希望使用Javascript将HTML5数据属性传递给参数。我的问题是,如果我把一个值传递给参数,它不会去寻找那个特定的值,而是已经从全局变量中设置好了 例如,我有一个带有 data-request="Five" 我想通过考试 requestResponses.init('URLHERE', 'Five'); 并仅以5作为元素的目标,以使选择器成为 .cp_trafficLight[data-request="Five"] .cp_trafficLight_Light--greenDimm

我希望使用Javascript将HTML5数据属性传递给参数。我的问题是,如果我把一个值传递给参数,它不会去寻找那个特定的值,而是已经从全局变量中设置好了

例如,我有一个带有

data-request="Five"
我想通过考试

requestResponses.init('URLHERE', 'Five');
并仅以5作为元素的目标,以使选择器成为

.cp_trafficLight[data-request="Five"] .cp_trafficLight_Light--greenDimmed'
目前,我只是获取HTML5数据属性值,并使用

targObj = $('.cp_trafficLight').data("request");
我知道这可能是一个简单的答案,但我似乎无法破解它。我所有的代码都贴在下面,我也会贴一把小提琴,以便于视觉效果

targObj = $('.cp_trafficLight').data("request");

var requestResponses = {

    targSel: '.cp_trafficLight[data-request=' + '"' + targObj + '"' + ']' + ' ',
    greenLight: '.cp_trafficLight_Light--greenDimmed',
    redLight: '.cp_trafficLight_Light--redDimmed',
    greenBright: 'cp_trafficLight_Light--greenBright',
    redBright: 'cp_trafficLight_Light--redBright',

    settings: {
        flashError: 400,
        requestTime: 10000
    },

    init: function (url, targObj) {
        requestResponses.url = url;
        requestResponses.getResponse(requestResponses.url);
        setInterval(function () {
            if (requestResponses.errorCode === true) {
                $(requestResponses.targSel + requestResponses.redLight).toggleClass(requestResponses.redBright);
            }
        }, requestResponses.settings.flashError);
    },

    successResponse: function (targObj) {
        requestResponses.errorCode = false;
        $(requestResponses.targSel + requestResponses.redLight).removeClass(requestResponses.redBright);
        $(requestResponses.targSel + requestResponses.greenLight).addClass(requestResponses.greenBright);
    },

    errorResponse: function (targObj) {
        $(requestResponses.targSel + requestResponses.greenLight).removeClass(requestResponses.greenBright);
    },

    getResponse: function (serverURL) {
        $.ajax(serverURL, {
            success: function () {
                requestResponses.errorCode = false;
                requestResponses.successResponse(targObj);
            },
            error: function () {
                requestResponses.errorCode = true;
                requestResponses.errorResponse(targObj);
            },
            complete: function () {
                setTimeout(function () {
                    requestResponses.getResponse(requestResponses.url);
                }, requestResponses.settings.requestTime);
            }
        });
    },

    errorCode: false
}

requestResponses.init('status/index.html', 'Two');

有什么问题吗?出了什么问题?是否报告错误?有什么事情发生吗?没有答案,但举例来说,我有两个以上的组件,它总是针对相同的一个,当我想他们都是单独的目标。因此,我可以在参数中传递attr值,并专门针对该参数。我会更新我的问题。