0

私はそれぞれのを取得し、クラス内CIDにそれぞれ.vehicleIDを追加しようとしていますhref.vehicle-actions&VID=[CID]

<ul>
            <li><a href="./garage_vehicle.php?mode=add_vehicle"><span>Create a Vehicle</span></a></li>

            <li class="vehicle-view toggleVehicleButton"><a class="vehicleID" href="./garage_vehicle.php?mode=view_own_vehicle&amp;CID=6"><span>2014 Audi A4</span></a>
                <div class="vehicle-actions" style="width: 179px; display: none;">
                    <ul>
                        <li><a href="/board/garage_vehicle.php?mode=view_vehicle">View Vehicle</a></li>
                        <li><a href="/board/garage_vehicle.php?mode=edit_vehicle">Edit Vehicle</a></li>
                        <li><a class="deletevehicle" href="">Delete Vehicle</a></li>
                        <li><a href="/board/garage_modification.php?mode=add_modification">Add Modification</a></li>
                        <li><a href="/board/garage_premium.php?mode=add_premium">Add Insurance</a></li>
                        <li><a href="/board/garage_quartermile.php?mode=add_quartermile">Add Quartermile Time</a></li>
                        <li><a href="/board/garage_dynorun.php?mode=add_dynorun">Add Dynorun</a></li>
                        <li><a href="/board/garage_track.php?mode=add_lap">Add Lap</a></li>
                        <li><a href="/board/garage_service.php?mode=add_service">Add Service</a></li>
                        <li><a href="/board/garage_vehicle.php?mode=view_own_vehicle">Set Main Vehicle</a></li>
                    </ul>
                </div>
            </li>

            <li class="vehicle-view toggleVehicleButton"><a class="vehicleID" href="./garage_vehicle.php?mode=view_own_vehicle&amp;CID=7"><span>2008 Chevrolet Corvette</span></a>
                <div class="vehicle-actions" style="width: 179px;">
                    <ul>
                        <li><a href="/board/garage_vehicle.php?mode=view_vehicle">View Vehicle</a></li>
                        <li><a href="/board/garage_vehicle.php?mode=edit_vehicle">Edit Vehicle</a></li>
                        <li><a class="deletevehicle" href="">Delete Vehicle</a></li>
                        <li><a href="/board/garage_modification.php?mode=add_modification">Add Modification</a></li>
                        <li><a href="/board/garage_premium.php?mode=add_premium">Add Insurance</a></li>
                        <li><a href="/board/garage_quartermile.php?mode=add_quartermile">Add Quartermile Time</a></li>
                        <li><a href="/board/garage_dynorun.php?mode=add_dynorun">Add Dynorun</a></li>
                        <li><a href="/board/garage_track.php?mode=add_lap">Add Lap</a></li>
                        <li><a href="/board/garage_service.php?mode=add_service">Add Service</a></li>
                        <li><a href="/board/garage_vehicle.php?mode=view_own_vehicle">Set Main Vehicle</a></li>
                    </ul>
                </div>
            </li>
        </ul>

頭の中では単純に見えるけど、自分が何を間違っているのか理解できないようだ

jQuery

function getURLParameter(url, name) {
    return (RegExp(name + '=' + '(.+?)(&|$)').exec(url)||[,null])[1];
}

$('.vehicleID').each(function(i, val){
    var vehicleIDurl = ($(this).attr('href'));
    var CID = getURLParameter(vehicleIDurl, 'CID');
    $('.vehicle-actions',this).each(function(i, val){
        editCID = $(this).find('a');
        editCID.attr('href', editCID.attr('href') + '&VID=' + CID);
    });
});
4

3 に答える 3

1

要素の中a.vehicleIDを見ますが、その親の中を見る必要がありますli

コードを簡素化できます。私はこれをします:

$('.vehicleID').each(function(i, val){
    var CID = getURLParameter(this.href, 'CID');
    $('.vehicle-actions a', $(this).closest('li')).attr('href', function(_, href){
         if (href.indexOf("&VID")!=-1) return href; 
         return href + '&VID=' + CID);
    });
});

単純化の中で、私は 2 番目のパラメーターとして関数を取る attr 関数のバージョンを使用this.hrefします。$(this).attr('href')

于 2013-07-16T11:15:37.777 に答える
0

このpieceコードは機能しない可能性があります。

$('.vehicle-actions',this).each(function(i, val){
    editCID = $(this).find('a');
    editCID.attr('href', editCID.attr('href') + '&VID=' + CID);
});

これは子ではない$('.vehicle-actions',this)ため、次を識別しません。そのため、親セレクターとして使用します。div.vehicle-actionsaclosest li.vehicle-view

これを試して、

$('.vehicle-actions',$(this).closest('li.vehicle-view')).each(function(i, val){
    editCID = $(this).find('a');
    editCID.attr('href', editCID.attr('href') + '&VID=' + CID);
});
于 2013-07-16T11:16:32.793 に答える
0

すべてのタグで vehicleID を指定していないため、以下のステートメントは 1 つの要素のみを返します。

$('.vehicleID').length

したがって、すべてのタグにクラスを適切に追加します。

于 2013-07-16T11:19:37.587 に答える