webForumDet fria alternativet

Läsa av värde på alla "div" taggar

JavaScript

8 svar · 641 visningar · startad av evilaid

Medlem sedan apr. 2009433 inlägg
Frågan#1

Hej

Har ett litet delikat js problem..
Via ett asp script skapar jag massa div block, dessa block kan användaren sedan flytta runt på sidan. När detta är gjort ska jag spara varje div blocks position och skapa en sträng som sedan skickas..

så varje block som skapas får ett id exempel:
<div id="tid20"></div>
<div id="tid21"></div>
<div id="tid22"></div>

Så min fråga är om det på något sätt går att loopa igenom alla div taggar som börjar med "tid" för att sedan plocka ut numret och sedan blocket position (x,y)

Jag har ju kommit på hur man får fram positionen men det svåra är ju att på något sätt ta fram alla divar???

Riktigt tacksam för lite vägledning ;)

Mvh

Medlem sedan juni 20019 519 inlägg
#2

jquery: http://api.jquery.com/attribute-starts-with-selector/

så få du ut en collection av jquery object som du kan jobba med.

Annars om du vill göra det för hand så få du hämta ut alla element som är av typen div (document.getElementsByTagName("div")) och loopar ut dom och kolla deras id om substringen på den är tid

Medlem sedan apr. 2009433 inlägg
#3

Fick jquery förslaget på annat håll också men kan inte det alls..
Men ditt andra alternativ där då, det låter ju mer passande för mig.
kan jag göra enligt följande:

for each object in document.getElementsByTagName("div")

loop

Hur gör man i javascript om jag vill kolla en sträng efter ett ord, alltså om object innehåller "tid"?

Medlem sedan juni 20019 519 inlägg
#4

objektet (object, är nog inte det smartaste namnet på det) har .id som property, kolla substring på den strängen som .id retunera, men först kollar du om den faktist innehåller något.

trust me, jquery varianten är mycket bättre, speciellt om du skall jobba med att få reda på var elementen faktiskt är på sidan sen.

var
	div = document.getElementsByTagName("div"),
	d = [];

for(var i=0,l=div.length;i<l;i++) {
	var el = div[i];
	if(el.id && el.id.substring(0,3) === "tid") {
		d.push(el)
	}
}

där d har en lista med alla divar som har ett id som börjar med tid.

Medlem sedan apr. 2009433 inlägg
#5

Precis så ska dte vara. Nu byter jag ut din "push" som jag antar är ett kommando för att fylla på en array mot en sträng som jag fyller på med id samt, top och left position.

Men hur gör jag för att klippa ut "tid" från id'et så att jag bara får själva talet?
Varje id heter ju något i stil med "id12" så jag vill få fram just talet 12
tanken är att anropet ska bli typ savePos.asp?tid12=tid12&width12=200&height12=100 osv..

Tänkte nämligen skicka positionen från alla divar till ett asp script som sparar dessa i en databas..
Detta är tänkt som en lastplanerings funktion så att den som jobbar med det får alla pallar på en order som ska lastas på ett släp och dessa visas som "div" block som kan flyttas runt och då kan bestämma hur dessa och vilken ordning det ska placerass i för att sedan skriva ut.. (var en lite kul ide jag fick :))

rätt tänk eller skulle man gjort det på ett annat sätt?

Medlem sedan juni 20019 519 inlägg
#6

evilaid skrev:

Men hur gör jag för att klippa ut "tid" från id'et så att jag bara får själva talet?
Varje id heter ju något i stil med "id12" så jag vill få fram just talet 12
tanken är att anropet ska bli typ savePos.asp?tid12=tid12&width12=200&height12=100 osv..

Kör en replace på tid => '' så få du ju ut ditt tal.

Medlem sedan apr. 2009433 inlägg
#7

a jag tänkte mest på i javascriptet att jag behövde klippa ut talet men hittade något som hette substring och det funkade... asp koden ska nog lösa sig..
tycker du att det är en vettig lösning att göra så som jag gjort för själva lastplaneringen eller är feltänk??

Medlem sedan juni 20019 519 inlägg
#8

Jag snackar inte något om ASP, replace finns mer än i ASP.

"Tal12".replace("Tal","") // => "12"

Jag hade hämtat alla object, sen skapat en sträng efter att jag vet min kollektion av divar

Medlem sedan apr. 2009433 inlägg
#9

hahaha så lite man vet... sökte lite på sträng formatering i javascript men lyckades aldrig hitta repalce :) då kan jag ju modifiera min kod lite istället för att använda substring och length m.m....

tack för hjälpen

292 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
133 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
158 ms — ändringar (db)