2013-04-15 12 views
12

tu jest mój problem:Fill div z html za pomocą JavaScript/jQuery

Mam Div:

<div id="legend"></div> 

i chcę go wypełnić, pod pewnymi warunkami, z tego innego kodu:

<p>Showing results.... 
    Key: 
    <img src="/....">&lt;=1 
    &nbsp;<img src="/...">&lt;=2 
    &nbsp;<img src="/...">&lt;=3 
    &nbsp;<img src="/...">&lt;=4 
    &nbsp;<img src="/...">&lt;=5 

<p> 

Jak widać jest to legenda, a głównym problemem jest to, że myślę, że mam podwójne cytaty, które nie mogą być łatwo dołączone za pomocą na przykład rozwiązanie tutaj: Fill div with text

Dzięki za pomoc!

+0

Co to są te "pewne warunki", o których mówisz? –

+0

Oto podpowiedź. Użyj '.html()' zamiast '.text()' –

+0

Czy _wyniki_ pochodzą z bazy danych? Mam na myśli, że może być inna liczba wyników? –

Odpowiedz

19

przez moich zrozumienie, próbujesz zrobić coś takiego:

$("#legend").text("Your HTML here"); 

Aby wstawić kod HTML, który trzeba zastosować .html(), jednakże byłoby znacznie bardziej efektywne, aby po prostu użyć Vanilla JS tak:

document.getElementById('legend').innerHTML = "Your HTML here"; 

Teraz również wspomnieć o problemy z podwójnych cudzysłowów. Cóż, istnieją dwa możliwe rozwiązania.

1: Użyj pojedynczego cudzysłowy wokół swojej wyrażenie: '<img src="/..." />'
2: Ucieczka cytaty: "<img src=\"/...\" />"

i jeszcze jedno: Jeśli te nowe linie są faktycznie w kodzie HTML do wstawienia, nie można mieć wieloliniowy ciąg w JavaScript. Masz dwie opcje tutaj TOO:

1: Ucieczka przełamane:

"<p>\ 
    Hello, world!\ 
</p>" 

2: łączenie:

"<p>\n" 
    +"Hello, world!\n" 
+"</p>" 
+0

Myślę, że te informacje pomogą! Dziękuję Ci! Mam zamiar dać ci znać. – valenz

+0

W zasadzie cały mój problem polegał na tym, że nie wiedziałem, że nie mogę mieć ciągów wieloliniowych. Teraz wszystko działa świetnie! Dziękuję bardzo Kolin. – valenz

+0

Cieszę się, że mogłem pomóc :) Jeśli moja odpowiedź była przydatna, proszę rozważyć oznaczenie jej jako Zaakceptowaną, klikając znacznik pod postem.^_^ –

5

Złóż kod HTML w zmiennej zgodnie z warunkami (których nie znamy), a następnie użyj html(), aby ustawić go w elemencie.

var yourHtml = "your html"; 
$("#legend").html("yourHtml"); 

Co do czynienia z cytatami, można użyć apostrofów w zmiennych, takich jak:

var yourHtml = '<img src="/yourimgr.png">'; 

czy można uniknąć podwójnych cudzysłowach:

var yourHtml = "<img src=\"/yourimgr.png\">"; 
+0

Musisz być medium. Jak inaczej mógłbyś wiedzieć, jakie są "określone warunki" wymienione w pytaniach? –

+0

Przykro mi, masz rację, nie jest wystarczająco jasne. Ale to nie problem. Potrzebuję tylko sposobu zakodowania tego html. Próbowałem z tym $ ("# id"). Append ('

hello

') i zadziałało. Problem polega na tym, że html do dodania jest zbyt "skomplikowany". Czy mój problem jest trochę bardziej wyraźny? – valenz

+0

Teraz po prostu pogorszyłeś sytuację. To dosłownie wydrukuje ciąg "yourHTML" –

0
  1. przechowywać pkt html w jakiś ciąg var str= <p>write your complete code here</p>
  2. $('#legend').html(yourconditionSatisfies?str:'')
+0

Dlaczego po prostu nie umieścić wszystkiego w konwencjonalnym stwierdzeniu "jeśli"? –

Powiązane problemy