javascript - jQuery - 通过 Id 获取动态 (*) 元素并放入数组

标签 javascript php jquery wordpress

我正在创建一个分类网站。搜索页面上会呈现多个产品卡。每张产品卡可以有多个图像。当这种情况发生时,我将使用 slider 。

为了构建这个 slider ,我使用了 jquery 库 (bxslider)。该应用程序基于 WordPress。

到目前为止,一切都很顺利。卡和 slider 工作。但是,当我有不止一张卡(帖子)时, slider 控件会更改所有卡上的位置。当然,因为每个人的选择器都是相同的。

然后我将帖子 ID 添加到 ID 选择器中,制作每张卡片。但现在 jQuery 必须明白,有几张独特的卡片供他应用在每张卡片中创建幻灯片的功能。

我的 PHP 代码

<?php 
    $id = get_the_ID(); 
?>
<div id="card-slider-<?php echo $id?>">
    <?php 
        $images = get_post_meta($post->ID, 'vdw_gallery_id', true); 
        foreach ($images as $image) { ?>
            <li>
                <div class="card-slide-item">
                    <img src="<?php echo wp_get_attachment_url( $image, 'imob-thumbs' ); ?>">
                </div>
            </li>
        <?php }
    ?>
</div>

<div class="card-slide-prev"></div>
<div class="card-slide-next"></div>

我的 jQuery

(function( $ ){
    $.fn.sliderID = function() {
        var sliders = [];
        sliders = $('[idˆ=card-slider-]').length;
        console.log('sliders ids', sliders);
    };
})( jQuery );

$(document).ready(function(){
    $.fn.sliderID();
});

最佳答案

不要为每个 slider 提供单独的 ID card-slider-{id},而是考虑为它们提供一个公共(public)类 card-slider 并在具有该类的所有元素。您可以在 slider 的初始化参数中传递上一个/下一个选择器的 ID(例如,您可以将其存储在数据属性中):

slider 启动

$( ".card-slider" ).each(function( index ) {
    var slider_id = $(this).data('id');
    $( this ).bxSlider({
        nextSelector: '#card-slide-'+slider_id+'-next',
        prevSelector: '#card-slide-'+slider_id+'-prev',
    });
});

标记:

<?php 
    $id = get_the_ID(); 
?>
<div class="card-slider" data-id="<?php echo $id; ?>">
    <?php 
        $images = get_post_meta($post->ID, 'vdw_gallery_id', true); 
        foreach ($images as $image) { ?>
            <li>
                <div class="card-slide-item">
                    <img src="<?php echo wp_get_attachment_url( $image, 'imob-thumbs' ); ?>">
                </div>
            </li>
        <?php }
    ?>
</div>

<div id="card-slide-<?php echo $id; ?>-prev"></div>
<div id="card-slide-<?php echo $id; ?>-next"></div>

关于javascript - jQuery - 通过 Id 获取动态 (*) 元素并放入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33524963/

相关文章:

javascript - 在babylon.js中添加一个按钮来更改网格

php - 用json将mysql数据解析成highchart

php - 登录脚本问题,不显示 "Logged in"

javascript - 渲染 View 后主干事件未触发

javascript - Alphavantage API - 符号未定义

javascript - 移动网络应用程序上的语音记录

javascript - 当单选按钮客户端检查更改时使用 JQuery 调用函数

javascript - PDFMake - 动态 pageMargins 取决于标题的高度

javascript - Phaser js php 排行榜

javascript - JQuery animate 完整功能未运行