lijst met ID's

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Lord Gaga

Lord Gaga

10/04/2012 21:15:51
Quote Anchor link
Hallo,

Stel ik heb een pagina met 4 divjes:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<div id="1" class="draggable"></div>
<div id="2" class="draggable"></div>
<div id="3" class="blaat"></div>
<div id="4" class="draggable"></div>


Hoe kan ik dan een variabel aanmaken met daarin een array met alle ID's die de class 'draggable' hebben, in bovenstaand geval dus: [1, 2, 4]

Alvast bedankt
Gewijzigd op 10/04/2012 21:16:09 door Lord Gaga
 
PHP hulp

PHP hulp

24/11/2024 11:16:03
 
Bas Cost Budde

Bas Cost Budde

10/04/2012 23:22:22
Quote Anchor link
"met de hand": lijst aanleggen met getElementsByTagName, en dan filteren op .className=='draggable'

"met jQuery": $('.draggable')
 
Chris -

Chris -

11/04/2012 02:03:14
Quote Anchor link
Let er overigens op dat de "id" van een element nooit mag bestaan uit enkel een cijfer!
 
Erwin H

Erwin H

11/04/2012 09:00:08
Quote Anchor link
@Chris
Dat was nieuw voor mij (dank), volgens de HTML 4 specificaties heb je inderdaad gelijk (een id moet beginnen met een letter). Na wat zoeken lijkt dit echter niet meer te gelden voor HTML5 http://www.w3.org/TR/2012/WD-html5-20120329/global-attributes.html#the-id-attribute
Quote:
The value must be unique amongst all the IDs in the element's home subtree and must contain at least one character. The value must not contain any space characters.

Nu lees ik hier in "must contain at least one character" dat een id niet leeg kan zijn, maar niet dat "character" een letter moet zijn.
Gewijzigd op 11/04/2012 09:00:28 door Erwin H
 
Lord Gaga

Lord Gaga

11/04/2012 09:14:21
Quote Anchor link
De id's op mijn site beginnen met een letter, dit was enkel een voorbeeldje.
Verdr heb ik geprobeer wat Bas zei:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
value = new Array();

jQuery('div').each(function(e)
{
    value[e] = jQuery(this).attr('id');
    alert(value[e]);
});


Nu krijg ik keurig een aantal alerts met daarin de id's van alle divjes op de pagina, maar ik wil dat hij alleen de id's weergeeft die beginnen met 'widget-'

Ik heb dit geprobeerd met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
if (value[e].substring(0, 7) == 'widget-')
{
    // etc...
}


Maar dan krijg ik geen enkel alert meer terwijl er 2 divjes zijn waarvan het id begin 'widget-'
 
Wouter J

Wouter J

11/04/2012 09:26:39
Quote Anchor link
Chris, dat is niet meer verplicht. Zie ook: http://mathiasbynens.be/notes/css-escapes en http://mothereff.in/css-escapes

Het enige waar je rekening mee moet houden is dat je in CSS en met de QuerySelector in JS niet als eerste character een cijfer mag hebben, die moet je dan escapen.


@Avicka, bedoel je zoiets:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
var ids = [];
$('div[id^="widget-"]').each(function() {
  ids.push($(this).attr('id').substr(7));
});
console.log(ids);

Live voorbeeld: http://jsfiddle.net/KKGmL/

(of als je geen console gebruikt (wat je echt moet doen, is veel beter): http://jsfiddle.net/KKGmL/1/
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.