【问题标题】:How to get the data-id of library item using jQuery/laravel如何使用 jQuery/laravel 获取库项目的数据 ID
【发布时间】:2021-07-19 18:39:47
【问题描述】:

我有以下模型形式:

  <div class="modal fade modal-right select-from-library" id="libraryModal" tabindex="-1" role="dialog"
            aria-labelledby="libraryModal" aria-hidden="true" data-backdrop="static">
            <div class="modal-dialog" role="document">
                <div class="modal-content">
                    <div class="modal-header">
                        <h5 class="modal-title">Select from Library</h5>
                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                            <span aria-hidden="true">&times;</span>
                        </button>
                    </div>
               
                    <div class="modal-body scroll pt-0 pb-0 mt-4 mb-4 cast">
                        <div class="accordion" id="accordion">
                            <div class="mb-2">
                                <button class="btn btn-link p-0 folder-button-collapse" data-toggle="collapse"
                                    data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
                                    <span class="icon-container">
                                        <i class="simple-icon-arrow-down"></i>
                                    </span>
                                    <span class="folder-name">Data</span>
                                </button>

                                <div id="collapseOne" class="collapse show" data-parent="#accordion">
                                    <div class="list disable-text-selection">
                                         <div class="row">
                                          <div class="test">     
                                                    <div class="d-flex align-self-stretch"> 
                                                    </div>
                                                    <div class="d-flex flex-grow-1 min-width-zero">
                                                        <div
                                                            class="card-body pr-1 pt-2 pb-2 align-self-center d-flex min-width-zero">
                                                            <div class="w-100 name_casting">
                                                               <!--  <p class="truncate mb-0">OK</p> -->
                                                            </div>
                                                        </div>
                                                        <div
                                                            class="custom-control custom-checkbox pl-1 pr-1 align-self-center">
                                                            <label class="custom-control custom-checkbox mb-0">

                                                     </label>
                                                 </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            </div>
                        </div>
                    </div>
                 
                    <div class="modal-footer">
                        <button type="button" class="btn btn-outline-primary" data-dismiss="modal">Annuler</button>
                        <button type="button" class="btn btn-primary sfl-submit" id="submit" name="submit">Générer</button>
                    </div>
                </div>
            </div>
        </div>

还有以下脚本:

<script>

    $(document).ready(function(){

        $('#numero_projet').change(function(){

            var id_projet = $(this).find("option:selected").data("id");

            console.log(id_projet);

        $.ajaxSetup({

            headers: { 'X-CSRF-TOKEN': 
        $('meta[name="_token"]').attr('content') }

          });
        
        $.ajax({
                  
            url:"getProjet/"+id_projet,
            type:"GET",

            success:function(html){
            renderTemplate(html)
    }        

        });

         function renderTemplate(html) {

          var content = html.castings.map((casting) => `<div class="cast col-6 mb-1 sfl-item-container" data-preview-path="{{ URL::to('/') }}/castingimages/${casting.photo}" data-path="{{ URL::to('/') }}/castingimages/${casting.photo}" data-label="${casting.nom} ${casting.prenom}" data-id="${casting.id_casting}">
        <div class="card d-flex mb-2 p-0 media-thumb-container">
        <div class="d-flex align-self-stretch">
        <img src="{{ URL::to('/') }}/castingimages/${casting.photo}" alt="uploaded image" class="list-media-thumbnail responsive border-0"/>
        </div>
        <div class="d-flex flex-grow-1 min-width-zero">
        <div class="card-body pr-1 pt-2 pb-2 align-self-center d-flex min-width-zero">
        <div class="w-100">
          <p class="truncate mb-0" >${casting.nom} ${casting.prenom}</p>
        </div>
        </div>
        <div
        class="custom-control custom-checkbox pl-1 pr-1 align-self-center">
        <label class="custom-control custom-checkbox mb-0">
        <input type="checkbox" class="custom-control-input">
        <span class="custom-control-label"></span>
        </label>
        </div>
        </div>
        </div></div>
                                             
`);
     
        $("div.test").append(content);
       
        }
        
        })

        })

</script>

模型表单中所有选中的元素都显示在这个块中:

<div class="select-from-library-container mb-1">
                                <div class="row">
                                    <div class="col-sm-12 col-md-6 col-xl-4">
                                        <div class="select-from-library-button sfl-multiple mb-5 casting_generes"
                                            data-library-id="#libraryModal" data-count="-1">
                                            <div
                                                class="card d-flex flex-row mb-4 media-thumb-container justify-content-center align-items-center">
                                                Select from library
                                            </div>
                                            
                                        </div>

                                           <button type="button" class="btn btn-primary" id="generer" name="generer">Générer</button>

                                        <div class="selected-library-item sfl-selected-item mb-5 ">
                                            <div class="card d-flex flex-row media-thumb-container libr">
                                                <a class="d-flex align-self-center">
                                                    <img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="
                                                        alt="uploaded image"
                                                        class="list-media-thumbnail responsive border-0 sfl-selected-item-image" />
                                                </a>
                                                <div class="d-flex flex-grow-1 min-width-zero">
                                                    <div
                                                        class="card-body align-self-center d-flex flex-column justify-content-between min-width-zero align-items-lg-center">
                                                        <a class="w-100">
                                                            <p
                                                                class="list-item-heading mb-1 truncate sfl-selected-item-label">
                                                            </p>
                                                        </a>
                                                    </div>
                                                    <div class="pl-1 align-self-center">
                                                        <a href="#"
                                                          class="btn-link delete-library-item sfl-delete-item"><i class="simple-icon-trash"></i></a>
                                                    </div>
                                                </div>
                                            </div>

                                        </div>
                                    </div>
                                </div>
                            </div>

喜欢:

my bloc html

所以现在我想使用以下代码来获取这个 bloc bu 中每个元素的数据 ID:

$('#generer').click(function(){

    var id = $("libr").attr("data-id");

    console.log(id);
      
    });

但我收到了undefined

通常我从脚本的这一行传递图像的data-labeldata-path

<div class="cast col-6 mb-1 sfl-item-container" data-preview-path="{{ URL::to('/') }}/castingimages/${casting.photo}" data-path="{{ URL::to('/') }}/castingimages/${casting.photo}" data-label="${casting.nom} ${casting.prenom}" data-id="${casting.id_casting}">

但是为什么当我尝试获取 data-id 时我得到 undefined ?

【问题讨论】:

    标签: jquery ajax laravel


    【解决方案1】:

    这里:var id = $("libr").attr("data-id"); 您可能按类获取元素。不确定您是否缺少 libr 前面的一个点 - 但无论如何,这将返回一个集合。您将不得不遍历它。集合本身有很多元素,元素都有属性。

    【讨论】:

    • 感谢您的回答和帮助,如果您能告诉我如何获取集合中每个元素的属性,请告诉我?
    • $('.libr').each(function(index, item) { dataId = item.attr("data-id"); }); 或 item.data("id");
    • 我收到了:Uncaught TypeError: item.attr is not a function
    • 当我这样做时:$('.libr').each(function(index, item) { var currentElement = $(this); var dataId = currentElement.data("id"); console.log(dataId); }); 我得到未定义
    • 现在我正在查看您的 HTML 代码,我只看到一个带有 .libr 的元素,并且它没有数据属性。
    猜你喜欢
    • 2021-09-27
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 2018-06-13
    • 2017-12-07
    • 2019-06-14
    • 1970-01-01
    • 2019-11-05
    相关资源
    最近更新 更多