Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: jQuery: useamman attribuutin läpikäyminen

Collation [22.03.2010 00:24:52]

#

Tarkoitus olisi valita option listasta tuotemalli, jonka tiedot on laitettu optionin attribuutteihin. Tuotemalliin voi sisältyä n kpl "lisätuotteita", jotka tulostan html:n seuraavasti: lisatuote[0]=2 lisatuote[1]=5 jne.
Kun valinta tehdään tulisi lisätuotteet käydä läpi ja merkitä lomakkeelle. itse hahmottelin seuraavanlaisen valitsimen, mutta en keksi kuinka viitata juuri kyseiseen attribuuttiin:

$('#kantatuote option:selected[attr^.lisat]').each(function() {

alkuperäinen ajatus oli tallettaa lisätuotteiden ID:t taulukkona mutta senkään läpikäyminen ei alkanut onnistua.

Collation [22.03.2010 11:42:05]

#

Luovutin ja pistin yhteen attribuuttiin pilkuilla eroteltuina, ja tämän taulukon kävin läpi silmukalla.

Metabolix [22.03.2010 14:32:06]

#

En ymmärrä selostuksestasi, miten nämä lisätuotteet on attribuuteissa lueteltu ja mitä elementtejä haluaisit valitsimella hakea. Voitko antaa jonkin konkreettisen esimerkin (päätuotteen option-tagin ja kaikki lisätuotteisiin liittyvät tagit)?

Valitsimella et voi kuitenkaan hakea elementtejä toisen elementin sisällön perusteella, vaan haettavien pitäisi olla valitun optionin sisällä ($("option:selected .lisatuote")). Muuten joudut erikseen hakemaan valitun arvon ja sitten vasta siihen liittyvät lisätuotteet, mikä on minusta kuitenkin varsin helppoa ja kätevää:

<select>
  <option value="3">Kasvispaketti</option>
</select>
...
<jokin class="lisatuote tuotteelle_3">Peruna</jokin>
<jokin class="lisatuote tuotteelle_3">Porkkana</jokin>
...
$(".lisatuote.tuotteelle_" + $("select").val())

Collation [22.03.2010 15:25:53]

#

lisätuotteita 0-n kappaletta joka tuotemallilla
alkuperäinen versio:

<option value="1" tukkuhinta="1.56"
nettohinta="1.46" vahhinta="3.5"
tuotantomaa="FI" lisatuotteet[0]="1"
 lisatuotteet[1]="6"  lisatuotteet[2]="8">
Tuotemallin nimi</option>

Nuo kaikki muut sain helposti paikoilleen tuolta seuraavilla loitsuilla:
$('#tukkuhinta').val($('#kantatuote option:selected').attr('tukkuhinta'))

Lisätuotteet muotoilin lopulta näin

lisatuotteet="1,6,8"

ja sitten javascriptillä muotoilin arrayn

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta