0

このように、Ajax 呼び出しの結果を JSON 配列形式で取得しました

var productList ={
"products": [
    {
        "brandName": "B1",
        "productID": "Pid1",
        "productName": "P1",
        "imagePath": "IP1",
        "mrp price": "9.99",
        "sell price": "8.99"
    },
    {
        "brandName": "B1",
        "productID": "Pid3",
        "productName": "P2",
        "imagePath": "IP2",
        "mrp price": "19.99",
        "sell price": "18.99"
    },
    {
        "brandName": "B1",
        "productID": "Pid3",
        "productName": "P4",
        "imagePath": "IP1",
        "mrp price": "29.99",
        "sell price": "558.99"
    }
]
};

今、ajax 呼び出しの成功関数で<li> .. </li>、JSON 応答で使用可能な各製品の要素を作成したいと考えています。いくつかの CSS クラスと ID を要素に適用したいと考えています。これは、li の形式です。

<li class='productWrap $productID' style='height:200px; width:150px;'>
<center> 
    <div class=\"productImageWrap\" id=\"productImageWrapID_+$productID\">
        <img src=$imagePath width='75' height='75' />
    </div>
    <div>
        <div style='font-size: 11px; font-family: \"Verdana\"; '> 
            $brandName + " " + $productName 
        </div>
        <b>                             
            <span>  
                <strike>   $mrp price  </strike>    
                $sell price 
            </span>
            <a href='#' id=\"featuredProduct_$data[0]\" onclick=\" adjust_menu(this.id); simpleCart.add('name=$brandName + " " + $productName', 'price=$sell price','image=$imagePath');             return false;\">   
                <img src='images/add-to-basket2.gif' alt='Add To Basket' width='111' height='32' id='featuredProduct_+$productID' />
            </a>
        </b>
    </div>
</center>
</li>

私の疑問は、これらの値を Ajax 成功関数に入力する方法です。入力する必要がある値は、$brandName $productName などの $ プレフィックスとして表示されます。

これらの値を入力して表示するだけでなく、Jquery クリックおよびマウス ホバー機能に使用するために、入力後に任意の要素にアクセスできるように (データ入力中に適用する CSS クラスと ID を使用して) 入力したいと考えています。 .

4

1 に答える 1

2

次のようなことができます

   success: function(data){
         $ul = $('#theUl');
         data.products.each(function(){
             var li = "<li><h1 class='name'>"+this.brandName+" "+this.productName+"</h1></li>";
             $ul.append(li);
         });

   }

さらに、h1.name にクリック イベントを設定する場合は、セレクターをデリゲートする必要があります。それは次のようになります:

$(document).on("click",".name",function(){
  alert('Yeah i successfully bound an event with an element that did not exist initially')
});
于 2013-11-14T10:17:26.560 に答える