WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   jQuery problem med inläsning av länk (https://www.wn.se/forum/showthread.php?t=1046029)

Helix 2011-01-21 02:12

jQuery problem med inläsning av länk
 
Antar att det finnsmånga här som har erfarenhet av jQuery.

Sitter med en funktion som läser in värdet från "value" i HTML-koden. Dock är värdet en länk med "&"-tecknet och det får funktionen att sluta fungera. Testar jag med "&"-tecknet för att testa vad det är som stör, så fungerar det, men tyvärr kan jag inte plocka ut tecknet permanent.

HTML koden:
Kod:

<option value="http://domain.com/links.php?id_category=4&amp;orderby=name&amp;orderway=asc" >Link 1</option>

-
-
-

JS:
Kod:

$(".dropdown dd ul li a").click(function() {
    var text = $(this).html();
    $(".dropdown dt a").html(text);
    $(".dropdown dd ul").hide();
    var source = $("#source");
    source.val($(this).find("span.value").html())  // Antar att problemet ligger här
});

Tror att problemet ligger i sista raden. Någon som stött på detta och har kanske en lösning?

nosnaj 2011-01-21 07:44

Nu är jag morgontrött men du hämtar värdet från en span med class value?

Ville du inte hämta värdet av attributet value på din option?

allstars 2011-01-21 08:06

source.val känns fel här.
Det är väl bättre att hämta ut värdet från den option som är vald istället!?

$("#source option:selected").val()

tartareandesire 2011-01-21 11:03

Koden känns tämligen förvirrande, inte helt lyckat med klassnamnet value i sammanhanget kanske :) Vad är det för span? Som allstars påpekar går det alldeles utmärkt att direkt hämta värdet från ett val och normalt sett brukar man använda change istället för click som event på en select. Känns som en del relevant html saknas i exemplet.

Helix 2011-01-21 11:17

Uppskattar alla var.

Ja, jag kanske har helt fel. Det var sent igår borde kanske ge länken till hela koden.

Här finns koden i sin helhet: http://www.jankoatwarpspeed.com/exam...2DropDown.html

Om man tar den koden, sätter in "&" bland "values" så fungerar den inte längre.

tartareandesire 2011-01-21 15:50

Snabbfix:
Kod:

source.val($(this).find("span.value").html().replace('&amp;', '&'))

Helix 2011-01-21 17:40

Tusen tack. Är inte så bra på JS och detta hjälpte! Klockrent!

Helix 2011-01-21 18:48

Citat:

Ursprungligen postat av tartareandesire (Inlägg 20389099)
Snabbfix:
Kod:

source.val($(this).find("span.value").html().replace('&amp;', '&'))

Nu var jag för snabb att dra slutsatser :)

Den verkar klara en instans av &amp; eller & . Dessutom om man har två sådana i länken så fungerar inte scriptet. Med enbart en går det.

Länk fungerar om ex: http://domain.com?kalle=1&pelle=2
Länk fungerar inte om ex: http://domain.com?kalle=1&pelle=2&olle=2


Tror jag ger upp ...


... hittade dock lösning nu. Ändrade html() till text() . Får se om det fungerar i långa loppet :)

emilv 2011-01-21 20:10

Det är .text() du ska använda så din förändring är rätt :-)
Att ersätta HTML-entiteterna är en rätt instabil lösning, som du själv märkte.


Alla tider är GMT +2. Klockan är nu 19:09.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson