jquery wenn div nicht id

Lesezeit: 3 Minuten

Benutzer-Avatar
tonoslfx

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?

<div id="one_wrap">
  <input type="checkbox" name="1" value="">
  <input type="checkbox" name="1" value="">
</div>
<div id="two_wrap">
  <input type="checkbox" name="2" value="">
  <input type="checkbox" name="2" value="">
</div>
<div id="sale_wrap">
  <input type="checkbox" name="3" value="">
</div>

Abfrage:

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?

    – Chris Lawlor

    27. April 2011 um 12:57 Uhr

Benutzer-Avatar
z33m

Verwenden nicht Selektor

$("div:not(#sale_wrap)")

  • 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.

    – Chris Lawlor

    27. April 2011 um 12:58 Uhr

Benutzer-Avatar
Chris Lawlor

Die jQuery not() Funktion kann dies tun.

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');
});

Kasse dieses Beispiel auf JsFiddle.

  • 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:

$("div:not(#sale_wrap):not(.sale_class)");

oder

$("div:not(#sale_wrap, .sale_class)");

oder

$("div").not('#sale_wrap, .sale_class');

Alternative:

$('div[id != "sale_wrap"]')

1146330cookie-checkjquery wenn div nicht id

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy