jQuery ve var itibaren json çekme verileri

3 Cevap php

Bu kodu vardır:

 $.getJSON("Featured/getEvents",
    	        function(data){
    	      $.each(data.events, function(i,event){
    	      		var title = event.title.substr(0,20);
    	      		$("#title-"+i).text("Text");
    	                if ( i == 4 ) return false;
    	          });
    	        });

Ben bir div 5 kez işlemek için bir php döngü ile conjuction bu yapıyorum, ben) var ve. Metni (kullanarak JSON kimlikleri içine benim içerik yerleştirmek istiyorum, ama nasıl bir var elde yok, çalışmıyor , jquery metin () içine bu durumda başlık yüzden gelen div yerleştirebilirsiniz?

Bu, bağlandığı (kısmi) gelen php:

<?php for($i = 0; $i <= 4; $i++)
    { ?>

    <div id="event-item-<?= $i?>" class="event">
    	<div class="column-left">
    	<div class="title"><h3><a href="" id="title-<?= $i?>"></a></h3></div>

Bu render versiyonu:

<div id="event-item-0" class="event">
   <div class="column-left">
        <div class="title"><h3><a href="" id="title-0"></a></h3></div>
             <div class="inner-left">
                <img src="http://philly.cities2night.com/event/85808/image_original" class="image" width="133" height="100">
                <p class="author">Posted by: <br> <a href="#">Brendan M. (22 Events)</a></p>
    		</div>
    		<div class="inner-middle">
    		<p class="description" id="description-0"></p>

    		<p class="notify"><img src="images/recommened_ico.png" alt="Recommened Event" width="98" height="21"></p>
    		<p class="links">
    		<!-- AddThis Button BEGIN -->
    		<a href="http://www.addthis.com/bookmark.php?v=250&amp;pub=philly2night" onmouseover="return addthis_open(this, '', '[URL]', '[TITLE]')" onmouseout="addthis_close()" onclick="return addthis_sendto()"><img src="http://s7.addthis.com/static/btn/lg-share-en.gif" alt="Bookmark and Share" style="border: 0pt none ;" width="125" height="16"></a><script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js?pub=philly2night"></script>
    		<!-- AddThis Button END -->
    		<a href="#" class="button">View Event</a></p>
    		</div>
    	</div>


    	<div class="column-right">
    		<ul id="event-options">
    			<li class="total-attending"><span><a href="#">502</a>Attending</span></li>
    			<li class="rsvp"><span><a href="#">RSVP</a></span></li>
    			<li id="like" class="notlike"><span>(3) Likes <br><span class="message"><a href="javascript:;" class="likeon">Do You Like it?</a></span></span></li>
    			<li class="comment"><span><a href="#">Comments (200)</a></span></li>

    			<li class="location"><span><a href="#">Location Name</a></span></li>
    		</ul>
    		</div>
    	</div>

        ...     
</div>

3 Cevap

Bu değişken referans olarak basit olmalıdır.

$("#title-"+i).text( title );

ya, senin başlık işaretlemek içeriyorsa,

$("#title-"+i).html( title );

Bu işe yaramazsa, size çalışmasını kod önlemek herhangi bir javascript hataları almıyorsanız emin olun.

EDIT: Bu veya olmayabilir ilgili olabilir, ama ben bir değişken adı olarak olayı kullanarak önleyeceğini. Window.event nesne ile karıştırmayın ve diğer sorunlara neden olabilir çok kolay. Genel olarak, ben bu durumda evt kullanmak istiyorum.

Diğer olasılıklar: belge yükleme yapılması veya yöntem geçerli sayfaya göreceli değildir sonra getJSON yöntemi yayınlanmıyor. Basit şeyler her yerde almak için görünmüyor yoksa, kod boyunca adım ve ne yaptığını görmek için Firefox / Firebug kullanarak deneyebilirsiniz. Lütfen mark up ve sadece çapa metin ayarlamak için jQuery kullanarak benim basit bir örnek bu yüzden sorun metin ayarlanmış olan kod olduğunu sanmıyorum iyi çalıştı.

$(function() {
    $.getJSON("/Featured/getEvents",
            function(data){
                 $.each(data.events, function(i,evt){
                    var title = evt.title.substr(0,20);
                    $("#title-"+i).text(title);
                    if ( i == 4 ) return false;
                 });
            });
});

Sen .html(val) kullanmak istiyorum.

Edit: Aslında, .text(val) olduğu gibi elemanı içindeki metni koyacaktır. .html(val), eklediğiniz herhangi bir HTML uygun hale izin verir kullanma.

Eğer title yerine "Text" kullanarak, bu denedin mi?

$.getJSON("Featured/getEvents", function(data){
    $.each(data.events, function(i,event){
        var title = event.title.substr(0,20);
        $("#title-"+i).text(title);
        if ( i == 4 ) return false;
    });
});