.attr'alt'只显示第一个单词

时间:2015-07-08 10:18:51

标签: javascript jquery attr alt

我遇到了一个小问题,我正试图通过从alt标签中获取图像标题来打印图像标题。这不起作用,因为它只显示alt中的第一个单词。

$("#galleryThumbs .imageThumb").click(function () {
    if ($(this).hasClass('active')) {
        //do nothing
    } else {
        var newImage = $(this).attr('picURL');
        $('#galleryImageLarge').attr('src', newImage);
        $("#galleryThumbs .imageThumb").removeClass('active');
        $(this).addClass('active');

        var newTitle = $(this).attr('alt');
        $('#galleryTitle').text(newTitle);
    }
});

HTML代码:

<div class="col-md-6 verticalcenter work" id="largeGalleryImage">
    <img src="<?php echo $galleryImages[0]['sizes']['large']; ?>"
        alt="<?php echo $galleryImages[0]['title']; ?>"
        class="img-responsive" id="galleryImageLarge" />
    <p id="galleryTitle"><?php echo $galleryImages[0]['title']; ?></p>
</div>

2 个答案:

答案 0 :(得分:1)

你应该转义从PHP传递给HTML的变量,即尝试替换:

/** 
 * Register the AboutController in a lazy loaded file. This could be done in about.module.js aswell,
 * but we'll do it here to separate stuff and showcase loading of multiple files. 
 */
angular.module('about').controller('AboutController', function ($state) {
  console.log('Im on a lazy loaded state!', $state.current);
});

使用:

<?php echo $galleryImages[0]['title']; ?>

您的<?php echo htmlspecialchars($galleryImages[0]['title']); ?> 可能包含$galleryImages[0]['title']符号,将被解释为属性值的结尾。

更多信息:http://php.net/manual/en/function.htmlspecialchars.php

答案 1 :(得分:0)

可能是您在$ galleryImages [0] ['title']值中有引号。逃避它:

alt="<?php echo htmlspecialchars($galleryImages[0]['title']); ?>"

(您应该对src,class和id属性以及

标记之间的内容执行此操作。)