jQuery:如何获取多个img的src值

时间:2016-04-11 14:13:03

标签: javascript php jquery html

我有这个PHP脚本来生成目录的缩略图。该目录中的文件数是动态的:

<?
    if (isset ($product_imgfiles)) {
        echo '<div class="row">';

        for ($i=2; $i<($num_product_imgfiles+2); $i++) {
            echo '<div class="col-xs-4 col-md-2" style="padding-left: 7px; padding-right: 7px;">
                    <a href="#" class="thumbnail product_imgfiles">
                        <img src="'. $directory . $product_imgfiles[$i] .'" style="margin-bottom: 5px;">
                        <span><i class="fa fa-times-circle"></i> hapus</span>
                    </a>
                </div>';
        }

        echo '</div>';
    }
?>

我每次点击缩略图时都会有这个jquery来监听事件:

echo '
$( ".product_imgfiles" ).each( function(index)  {
    $( ".product_imgfiles" ).click(function() {
        event.preventDefault();
        var img_files = $( ".product_imgfiles img" ).attr( "src" );
        alert( img_files );
        alert( \''.$product_token.'\' );
        alert( '.$secret_token.' );
    });
}); 

';

jquery部分能够显示警报消息。但是,不幸的是,循环不会停止,直到product_imgfiles的数量,并且它显示src img标记的src值。

虽然我需要的是在点击课程img后获得product_imgfiles src代码值。如何点击每个img类的每个mDataBase = SQLiteDatabase.openDatabase(this.cordova.getActivity().getDatabasePath(DB_NAME).getAbsolutePath(), null, SQLiteDatabase.CREATE_IF_NECESSARY); 值?谢谢。

1 个答案:

答案 0 :(得分:2)

删除.each循环。

.click()固有地将它应用于每个元素,你不需要再次遍历它们。

echo '
    $( ".product_imgfiles" ).click(function(event) {
        event.preventDefault();
        var img_files = $( this ).children('img').attr( "src" );
        alert( img_files );
        alert( \''.$product_token.'\' );
        alert( '.$secret_token.' );
    });
';

此外,您需要将event变量实际传递给构造函数。 正如评论中提到的那样,您使用this引用当前对象,而不是再次使用选择器。

此外,产品令牌和秘密令牌令人困惑的位有点奇怪。对于每个.product_imgfiles对象,它都是相同的。那是你要的吗?如果是这样,那很好!如果没有,您应该将这些值存储为PHP中每个img元素的属性(例如data-product_token='$product_token'),然后在JS中使用$(this).attr('data-product_token')$(this).data('product_token')来引用它们。