在jQuery中移动DOM元素(图层滑块)

Moving a DOM Element in jQuery (Layer Slider)

本文关键字:图层 元素 jQuery 移动 DOM      更新时间:2024-05-17

jQuery noob here.对不起,如果问题真的很简单,尽管我正在努力学习,但我还没有接触太多的jquery。

我正在尝试将 DOM 元素从一个地方移动到另一个地方,但我似乎遇到了一些错误。

当我尝试测试以查看 DOM 是否存在时,我得到该元素不在 DOM 中的迹象:

if (jQuery('.ls-yourlogo').length) {
    alert('Found!');
} else {
    alert('NOT FOUND!');
}

我正在尝试将.ls-yourlogo移动到.ls-inner

我尝试了几种不同的东西,包括:

jQuery('#layerslider_1').children('img').appendTo('#layerslider_1').children('.ls-inner');

    jQuery('.ls-yourlogo').appendTo('.ls-inner');

我知道.ls-yourlogo和.ls-inner DOM元素都是用jQuery创建的。我不确定这是否是导致问题的原因。

我目前正在使用WordPress的图层滑块插件:http://codecanyon.net/item/layerslider-responsive-wordpress-slider-plugin-/1362246

  <div id="slider">
<script type="text/javascript"></script>
<script type="text/javascript"></script>
    <div class="ls-wp-fullwidth-container" style="height: 317px;">
        <div class="ls-wp-fullwidth-helper" style="height: 317px; width: 1349px; left: 0px;">
            <div id="layerslider_1" class="ls-wp-container ls-container ls-noskin" style="width: 1050px; height: 317px; margin: 0px auto; visibility: visible;">
            <div class="ls-webkit-hack"></div>
            <div class="ls-inner">
                <div class="ls-layer ls-active">
                    <img class="ls-s-1">
                    <p ></p>
                    <p ></p>
                </div>
                <div class="ls-layer" >
                    <img class="ls-s-1">
                </div>
            <div class="ls-circle-timer"></div>
            <div class="ls-loading-container"></div>
            <div class="ls-thumbnail-wrapper"></div>
            <div class="ls-shadow"></div>
            <img class="ls-yourlogo">
        </div>
    </div>

谢谢你的时间。

终于找到了移动元素图层滑块 DOM 的解决方案。

        jQuery('#layerslider_1').layerSlider({
        hoverPrevNext : false,
        cbInit              : function(element){
                                jQuery('.ls-yourlogo').appendTo('.ls-inner');
                                jQuery('.ls-thumbnail-slide > a').addClass('ls-thumbnail-style');
                              }
    });

该 ID 是页面上存在的图层滑块的 ID。我的碰巧是 1,所以它的 #layerslider_1。下一个重要部分是回调 cbInit,在这个函数中,您可以进行追加以及您想要对 DOM 进行的任何其他标记更改。希望这对某人有所帮助。

试试这个:

建议而不是你每次都输入jQuery使用$,而是让你更容易。

if ($('.ls-yourlogo')) {
    alert('Found!');
} else {
    alert('NOT FOUND!');
}

此外,我建议使用 #ids 而不是类,因为id在Jquery中比类快得多。并确保在检查它是否退出之前,先调用生成.is-yourlogo类的脚本。

看到这个jsfiddlehtml中的</div>标签没有正确关闭,这可能是你的部分问题。 如果我关闭一些并运行我的代码,它会删除带有class='ls-your-logo'的元素并将其附加到<div class='ls-inner'>,最终与以前相同。 也许如果你看看我的小提琴,你可以更好地关闭div标签,使其正确显示