我有几个类需要使用jQuery编辑,遗憾的是我无法用一个语句编辑,我希望有些可以帮助我如何使用.Each函数或循环我可以应用它整个班级。
if ($(".A").hasClass("B")) {
$("<span id=\"Dummytext\">Condition 1</span>").insertAfter($(".N"));
} else if($(".A").hasClass("C")) {
$("<span id=\"Dummytext\">Condition 2</span>").insertAfter($(".N"));
} else {
$("<span id=\"Dummytext\">Condition 2</span>").insertAfter($(".N"));
}
答案 0 :(得分:1)
利用.each():
$(".A").each(function () {
if ($(this).hasClass("B")) {
$("<span id=\"Dummytext\">Condition 1</span>").insertAfter($(".N"));
} else if ($(this).hasClass("C")) {
$("<span id=\"Dummytext\">Condition 2</span>").insertAfter($(".N"));
} else {
$("<span id=\"Dummytext\">Condition 2</span>").insertAfter($(".N"));
}
});
这将检查文档中包含类A
的每个元素。
答案 1 :(得分:0)
试试这段代码:(如this fiddle所示)
(提示:$(this).each(...)
是关键点)
jQuery.fn.extend({
myDecide: function (classYes, ClassNo, selectorAfter, TextYes, TextNo, TextDefault, closestSelector) {
$(this).each(function() {
var after = $(this).closest(closestSelector).find(selectorAfter)
console.log($(this))
if ($(this).hasClass(classYes)) {
$(TextYes).insertAfter($(after));
} else if ($(this).hasClass(ClassNo)) {
$(TextNo).insertAfter($(after));
} else {
($(TextDefault).insertAfter($(after)));
}
});
}
})
jQuery(".infoModule").myDecide(
'inStock',
'notInStock',
".ui-priceselector",
$("<span id=\"messageinstock2\">Condition 1</span>"),
$("<span id=\"messageinstock2\">Condition 2</span>"),
$("<span id=\"messageinstock2\">Condition 3</span>"),
'.searchrow-price'
);
为什么你的代码不起作用?
$(".A")
计算每个具有类A
的元素,但hasClass
函数仅适用于jQuery选择的第一个对象$().each
你可以帮助1.然后你面临另一个问题。您始终将文本附加到每个$(".N")
。你必须找到与.N
相对的.A
。这是closest().find()
部分。此外,为方便起见,我将其打包成jQuery函数。