如何将地址附加到<a>标签href

时间:2019-10-06 16:54:23

标签: javascript php jquery html bxslider

我使用bxslider4并启用了字幕。我想添加字幕链接。我做了一些,但仅适用于第一个。如何将所有链接附加到每个字幕。我已经编辑了bxslider javascript文件。

我的滑块php代码:

foreach ($manset_images as $man_img => $value2) {
                                                  ?>

        <div>
            <a  id="slayt_resim_link" href="index.php?url=content&id=<?=$value2->content_id; ?>">
                <img src="<?php echo URL; ?>public/upload/<?=$value2->content_foto?>" title="<?=$value2->content_title?>" data-url="index.php?url=content&id=<?=$value2->content_id; ?>" style="width:100%; height: 350px;">                                
            </a>
        </div>

    <?php 
    }
?>

我在原始bxslider javascript文件中添加了以下代码,以获取图像链接并更改标题href:

    // find image link
    var captionLink = $this(this)$(slayt_resim_link).attr('href');
    $('#manset_caption_link').attr('href', captionLink);

此代码提供了适用于第一个标题的信息。如果将captionLink添加到href =“”,我认为我可以解决问题 <a id="manset_caption_link" href="">,但我不知道该怎么办。

javascript代码的最新状态:


// bxslider javascript file 719. line   
 /**
     * Appends image captions to the DOM
     */
    var appendCaptions = function() {
      // cycle through each child
      slider.children.each(function(index) {
        // get the image title attribute
        var title = $(this).find('img:first').attr('title');


//------------------ added after ----------------------------
        // find image link
        var captionLink = $this(this)$(slayt_resim_link).attr('href');
        $('#manset_caption_link').attr('href', captionLink);
//------------------------------------------------------------

        // append the caption
        if (title !== undefined && ('' + title).length) {
          $(this).append('<div class="bx-caption"><a id="manset_caption_link" href="---Add captionLink---!!!!!"><span>' + title + '</span></a></div>');
        }

      });
    };

2 个答案:

答案 0 :(得分:1)

我解决了我的问题。现在,我可以获取所有链接并附加到eah标题。

我的php代码:

foreach ($manset_images as $man_img => $value2) { ?>
    <div>
        <a href="index.php?url=content&id=<?=$value2->content_id; ?>">
            <img src="<?= URL; ?>public/upload/<?=$value2->content_foto?>" title="<?=$value2->content_title?>" data-url="index.php?url=content&id=<?=$value2->content_id; ?>" style="width:100%; height:350px;">                                
        </a>
    </div>
    <?php 
    }
?>

bxslider js的最后状态:

    /**
     * Appends image captions to the DOM
     */
    var appendCaptions = function() {
      // cycle through each child
      slider.children.each(function(index) {
        // get the image title attribute
        var title = $(this).find('img:first').attr('title');
        var captionLink = $(this).find('a:first').attr('href');
        // append the caption
        if (title !== undefined && ('' + title).length) {
          $(this).append('<div class="bx-caption"><a id="manset_caption_link" href="'+ captionLink +'"><span>' + title + '</span></a></div>');
        }
      });
    };

答案 1 :(得分:0)

这里的主要问题是,滑块中的每张幻灯片都使用相同的<!DOCTYPE html> <html lang="en"> <style> body { background-color: @ViewData["BackgroundColor"] } h1 { color: @ViewData["FontColor"]; font-size: @ViewData["FontSize"]; } </style> <head> <title>Index View</title> </head> <body> <h1>@ViewData["Message"]</h1> </body> </html> 。每页唯一的id不能超过一个,否则您将面临非标准的行为。您的jQuery代码段将正确地将链接附加到找到的第一个id(即使其中有更多,它也始终是第一张幻灯片)。
(下面的代码已更新;尽管我仍然要说,同一页面id不能多次使用,显然会破坏原始的bxslider)

考虑将您的PHP代码更改为将类用于id元素:

a



然后您的jQuery代码段可能看起来像这样:

foreach ($manset_images as $man_img => $value2) { ?>
    <div>
        <a id="slayt_resim_link" class="slayt-resim-link" href="index.php?url=content&id=<?=$value2->content_id; ?>">
            <img src="<?= URL; ?>public/upload/<?=$value2->content_foto?>" title="<?=$value2->content_title?>" data-url="index.php?url=content&id=<?=$value2->content_id; ?>" style="width:100%; height:350px;">                                
        </a>
    </div>
    <?php 
    }
?>



但是,我强烈建议您不要编辑原始的滑块文件。在加载jQuery和BXSlider之后,制作您自己的JS文件并添加到您的项目中:

    //------------------ added after ----------------------------
    // find image link
    var captionLink = $(this).find('#slayt_resim_link').attr('href');
    //------------------------------------------------------------

    // append the caption
    if (title !== undefined && ('' + title).length) {
        $(this).append('<div class="bx-caption"><a id="manset_caption_link" href="' + captionLink + '"><span>' + title + '</span></a></div>');
    }