2016-05-13 12 views
0

Ich Elemente in meiner Ansicht dynamisch hinzufügen, wie folgt aus:selektierende Element mit einem Raum separeted Worte

@foreach ($categoryViews as $key => $value) 
    <div class="large-2 columns text-center"> 
     <div id='{{ $key }}' style="height: 101px; width: 102px; margin: 0 auto"></div> 
    </div> 
@endforeach 

Aber einer meiner Schlüssel ist eine Zeichenfolge, die Raum getrennt ist, sieht es aus wie dieses Product test

Ich weiß, Ids müssen nicht getrennt werden, aber ich versuche, einen Weg zu finden, diese Elemente irgendwie zu wählen, weil ich sie von meinem DB bekommen werde, also anstatt Änderungen durch die Herstellung von Nacktschnecken für sie zu machen, frage ich mich wie Ich erreiche das mit jQuery, und ich dachte, es wäre möglich, es zu tun, da es bereits ein Thema über stack overflow gab . In meinem Skript versuche ich, Diagramme für jedes Element zu initiieren, indem ich durch dasselbe Array gehe. Ich bin mit $('[id=' + key + ']') als Selektor für Raum getrennt Wörter durch dieses example folgende, wie folgt aus:

for (var key in icoop.viewsByCategory) { 
    $('[id=' + key + ']').highcharts({ 
     // my code... 
    } 

In meiner Konsole bekomme ich einen Fehler:

jquery.js:1468Uncaught Error: Syntax error, unrecognized expression: [id=Product test]

+0

Dies ist kein gültiges ID-Attribut. Sie sollten besser stattdessen verwenden "Daten-ID" –

+0

'id' Attribute können keine Leerzeichen in ihnen haben. Sie müssen das Leerzeichen von der 'Taste' entfernen, bevor Sie es als' id' setzen. –

+0

Stimmen Sie den obigen Kommentaren zu, Wenn Sie jedoch trotzdem mit der Verwendung von '$ ('[id =' '+ key +' '] gehen wollen) ') ' – Satpal

Antwort

0

ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").

Sie nicht Identifikation mit Platz nutzen können , aber Sie können Ihre Daten mit Leerzeichen als Attribut speichern und mit jQuery suchen.

Mögliche Lösung:

@foreach ($categoryViews as $key => $value) 
    <div class="large-2 columns text-center"> 
     <div data-name='{{ $key }}' style="height: 101px; width: 102px; margin: 0 auto"></div> 
    </div> 
@endforeach 

JavaScript-Code:

for (var key in icoop.viewsByCategory) { 

    $('div[data-name=' + key + ']')[0].highcharts({ 

     // your code code... 
    } 
} 

Diskussionsforum

<div data-name='some text'></div> 

$("div[data-name='some text']")[0]; 
+0

Ich weiß, IDs müssen nicht getrennt werden, aber ich versuche, einen Weg zu finden, irgendwie Elemente zu finden, weil ich sie von meinem DB bekommen werde, so dass ich anstelle von Änderungen der Herstellung von Nacktschnecken für sie war frage mich, wie würde ich das mit jQuery erreichen, und ich dachte, es wäre möglich, es zu tun, da es bereits ein Thema über Stapelüberlauf war – Marco

+0

Sie können Ihr Element nicht mit falscher ID benennen. Es ist unmöglich. Sie können andere alternative Möglichkeiten verwenden. Ich werde meine Antwort mit einer möglichen Lösung aktualisieren. –

0

Ids keine Leerzeichen oder andere leere Zeichen (\ t enthalten kann, \ r, \ n ...). Sie können es einfach nicht. Doing this:

<span id='my id'></span> 

Wird zwei verschiedene IDs zu span zuweisen.

Verwandte Themen