0

コントローラーからajax関数にhtmlをエコーし​​てリストを作成しています。だから私のjavascriptはajaxを介してこのデータを取得し、liを作成します...それから私はこの作成されたhtmlから属性を呼び出したいです...それは機能していません。...私は何が間違っているのですか?

JAVAスクリプト

//リストを作成するには

$.ajax({
             url:'ol_locations',  // ol_locations is a controller, see below.
             dataType: 'html',

                success: function (data3){

            //  list elements in the ordered list


            $('ol.locations_list').html(data3);
                }});
//list populated successfully

コントローラーol_location...........。

パブリック関数ol_locations(){

    $this->load->model('model_location');
    $data = $this ->model_location -> fetch_location_data();
    $i=1;
    foreach ($data as $row){



        if ($row->Type == 'locality'){

            echo "<div data-color ='red' id='".$i."'><li><a href ='#'> <span class='location_title'>". $row -> Nickname . " </span> ". $row->FormattedAddress .
            "</a> <a class='remove_location' title='Remove this location' data-nid='{$row->Id}'
            style='float:right;'>x</a>" ." </li> </div>";
            $i++;
        }
        else {
                 echo "<div data-color ='red' id='".$i."'><li> <a href ='#'><span class='location_title'>". $row -> Nickname. " ". $row -> Radius ." km of </span> ". " </span> ". $row->FormattedAddress ."</a><a class='remove_location' title='Remove this location' data-nid='{$row->Id}'style='float:right;'>x</a>" ." </li> </div>";
            $i++;
        } }
}

これでHTMLは適切にレンダリングされます...しかし、この「作成されたhtml」の要素にアクセスしようとしても、何も起こりません...

たとえば、alert($('#1')。attr('color')); 「null」または未定義になります。

私は次のような多くのことを試みました

var initial_location = $('ol.locations_list li a')。attr('href');

まだnull..。

私は本当にここで立ち往生しています...

4

1 に答える 1

0

HTMLがDOMに適切に追加されていると言うので、実際に読み込まれる前に新しい要素にアクセスしようとしている可能性があります。新しい要素に関連するコード$('ol.locations_list').html(data3);は、たとえば-の後にのみ配置してください。

$.ajax({
         url:'ol_locations',  // ol_locations is a controller, see below.
         dataType: 'html',

            success: function (data3){

        //  list elements in the ordered list


        $('ol.locations_list').html(data3);
}}).done(function() {
    alert ($("#1").attr('data-color'));
});
于 2013-01-27T07:14:31.647 に答える