我似乎无法弄清楚如何通过这个'要压制jslint错误的元素。这是我的代码:
function incrementFilter(event, selectedValue) {
"use strict";
$(this).html(selectedValue);
//set the next button to a var
var current = $(event.currentTarget);
var parent = $(current).parents().eq(1); // grandfather //div
var nextParent = $(parent).next().first(); // next div
var enableElem = $(nextParent).find('button');
//remove disable attr
enableElem.removeAttr("disabled");
}
//enable successive button, on each former button click
$(".irFilter .filterChosen").on("customEvent", incrementFilter);
// apply text to dropdown after selected
$(".irFilter").on("click", "ul li", function () {
//grab link text
selectedValue = $(this).text();
var thisIrFilterDiv = $(this).parents('.irFilter');
thisFilterChosenSpan = $(thisIrFilterDiv).find('.filterChosen');
//apply text
thisFilterChosenSpan.trigger("customEvent", [selectedValue]);
});
我想将span标记作为参数传递给你看到被触发的customEvent的旁边,但我似乎无法弄清楚如何传递它以便我不必使用'这个'在功能中。我试图将它传递到一个JSON对象中,然后通过重命名参数并将其像这样循环来将其解压缩到其他对象上
function incrementFilter(event, params) {
"use strict";
var span, selectedValue;
$.each(params, function (i, item) {
if (i === '1') {
selectedValue = item;
} else if (i === '2') {
span = item;
}
})
$(span).html(selectedValue);
//set the next button to a var
var current = $(event.currentTarget);
var parent = $(current).parents().eq(1); // grandfather //div
var nextParent = $(parent).next().first(); // next div
var enableElem = $(nextParent).find('button');
//remove disable attr
enableElem.removeAttr("disabled");
}
由于我当时无法弄清楚如何使用跨度,所以无法正常工作。
是什么方法可以消除"这个"所以我可以通过lint?
答案 0 :(得分:1)
最简单的方法是通过添加绕过JSLint的注释:
function incrementFilter(event, selectedValue) {
"use strict";
/* jshint validthis:true */
$(this).html(selectedValue);
JSLint正试图警告您this
此时可能是undefined
。 There's some discussion on a related project关于完全删除它,所以你应该安全地忽略这个错误。
(如果您不想在代码中分散这些评论,可以将"validthis": true
添加到.jshintrc
文件中。http://www.jshint.com/docs/options/#validthis)
作为旁注,我建议使用JSHint而不是JSLint(特别是如果你是初学者),因为Hint试图捕获错误,而Lint也发现你的编码风格有问题。