Ich möchte den Preis auf alle Eingabewerte in allen Divs abschneiden, mit Ausnahme von nur einem div sale_wrap. Wie mache ich eine Ausnahme mit jquery?
if($("div").attr("id") != "sale_wrap") {
t_balance;
} else {
var sale = t_balance*((100-window.discount_p)/100);
t_balance = sale;
}
Hier läuft etwas schief. $("div").attr("id") gibt immer die ID des ersten div von ausgewählt zurück. Ich hoffe, dass diese Bedingung immer wahr sein wird. Können Sie uns sagen, in welcher Funktion/Ereignis Sie diesen Code ausprobieren?
– Bharath
27. April 2011 um 12:51 Uhr
Es ist nicht ganz klar, was Sie hier zu tun versuchen. Das HTML-Markup besteht ausschließlich aus Kontrollkästchen, und Ihr Beispiel-JS (Pseudocode?) Legt ein globales ‘t_balance’ basierend auf einem anderen globalen ‘discount_p’ fest … es scheint, als ob Ihr JS-Code Teil einer Funktion sein könnte das ist bereits die divs durchlaufen und ‘t_balance’ zurückgeben?
Die ‘.att(“id”) != “sale_wrap”‘ und die gesamte ‘if’-Anweisung sind überflüssig. Der Not-Selektor hat die ID „sale_wrap“ bereits aus der Ergebnismenge entfernt, sodass Sie nicht erneut danach suchen müssen.
– Chris Lawlor
27. April 2011 um 12:33 Uhr
oh danke. habe den Code nicht vollständig gelesen. modifizierte Antwort. Das Beispiel in der Frage sieht seltsam aus, das attr (‘id’) in if wird nur die ID des ersten Elements zurückgeben.
– z33m
27. April 2011 um 12:38 Uhr
stimmte zu, es ist nicht sehr klar, was das OP tatsächlich zu erreichen versucht.
Um alle Divs außer dem Div mit auszuwählen id von sale_wrap:
$('div').not('#sale_wrap')
Sie können dann die Divs mit durchlaufen each().
Als Beispiel:
#HTML
<p id="1">Some text in paragraph 1</p>
<p id="2">Some text in paragraph 2</p>
<p id="3">Some text in paragraph 3</p>
#JS
# turn background to blue for all 'p' except p with id=2
$('p').not('#2').each(function() {
$(this).css('background-color', 'blue');
});
Wenn Sie daraus eine native DOM-NodeList benötigen, rufen Sie uns an var nodeList = $('div').not('#sale_wrap').get();
– Jan
6. Juli 2018 um 10:35 Uhr
Versuchen Sie es mit
if($('div').not('#sale_wrap'))
{
t_balance;
}
else
{
var sale = t_balance*((100-window.discount_p)/100);
t_balance = sale;
}
‘$(‘div’).not(‘#sale_wrap’)’ gibt ein jQuery-Element zurück, das alle ‘div’-Elemente enthält, die keine ID von ‘sale_wrap’ haben. Es ist keine bedingte Prüfung für ein bestimmtes div, daher ist keine ‘if’-Anweisung erforderlich. Diese ‘if’-Anweisung wird immer zu ‘true’, wenn im Markup ein div mit einer anderen ID als ‘sale_wrap’ vorhanden ist.
– Chris Lawlor
27. April 2011 um 12:51 Uhr
Nur um etwas mehr Informationen hinzuzufügen. Man kann mehrere verwenden nicht Selektor so was:
Hier läuft etwas schief.
$("div").attr("id")
gibt immer die ID des ersten div von ausgewählt zurück. Ich hoffe, dass diese Bedingung immer wahr sein wird. Können Sie uns sagen, in welcher Funktion/Ereignis Sie diesen Code ausprobieren?– Bharath
27. April 2011 um 12:51 Uhr
Es ist nicht ganz klar, was Sie hier zu tun versuchen. Das HTML-Markup besteht ausschließlich aus Kontrollkästchen, und Ihr Beispiel-JS (Pseudocode?) Legt ein globales ‘t_balance’ basierend auf einem anderen globalen ‘discount_p’ fest … es scheint, als ob Ihr JS-Code Teil einer Funktion sein könnte das ist bereits die divs durchlaufen und ‘t_balance’ zurückgeben?
– Chris Lawlor
27. April 2011 um 12:57 Uhr