1

JavaScript/jQuery は初めてです。フレームワークによって自動的に生成される次の HTML コードがあります。

<tr class="alternate-row">
    <td>17 July, 2012</td>
    <td>AM Shipment</td>
    <td>Generated</td>
    <td>
        <form method="post" action="" id="ListTruckSheets_o_7" class="basic-form" onsubmit="javascript:submitFormDisableSubmits(this)" name="ListTruckSheets_o_7">//I have the name of this form.
            <input type="hidden" name="shipmentId"  value="10310" id="ListTruckSheets_shipmentId_o_7">
            <input type="hidden" name="Report" id="truckSheet_o_7" onclick="javascript:setSelectedRoute(this, 10310);">
            <input type="hidden" name="abstractReport" id="routeAbstract_o_7" onclick="javascript:setSelectedRoute(this, 10310);">
            <input type="hidden" name="milkDeliverySchedule" id="deliverySchedule_o_7"  onclick="javascript:setSelectedRoute(this, 10310);">
            <input type="hidden" name="cancelShipment" id="ListTruckSheets_cancelShipment_o_7">
        </form>
        <td>
            <a class="buttontext" href="/myportal/control/KVGenerateTruckSheet.txt?shipmentId=10310&amp;reportTypeFlag=trucksheet"  target="_blank" onclick="javascript:setSelectedRoute(this, 10310);" title="Report">Truck Sheet Report</a>
        </td>
        <td>
            <a class="buttontext" href="/myportal/control/KVGenerateTruckSheet.txt?shipmentId=10310&amp;reportTypeFlag=abstract" target="_blank" onclick="javascript:setSelectedRoute(this, 10310);" title="Abstract Report">Route Abstract Report</a>
        </td>
        <td>
            <a class="buttontext" href="/myportal/control/MilkDeliveryScheduleReport.txt?hipmentId=10310&amp;reportTypeFlag=milkDeliverySchedule" target="_blank" onclick="javascript:setSelectedRoute(this, 10310);" title="Milk Delivery Schedule">Delivery Schedule</a>
        </td>
        <td>
            <form method="post" action="/myportal/control/cancelLMSShipment" target="_blank"    onsubmit="javascript:submitFormDisableSubmits(this)" name="ListTruckSheets_o_7_0_o_cancelShipment">
                <input name="shipmentId" value="10310" type="hidden">
            </form>
            <a class="buttontext" href="javascript:document.ListTruckSheets_o_7_0_o_cancelShipment.submit()">Cancel</a>
        </td>
</tr>

onclick を使用して、URL を取得し、パラメーターを追加する JavaScript 関数を呼び出しました。フォームの名前または ID を持っています ('ListTruckSheets_o_7')。フォーム名または Id を使用して、親 tr を見つけ、必要な正しい td を特定し、パラメーターをその URL に設定する必要があります。これは私が現在いじっているコードです。

function setSelectedRoute(existingUrl, shipmentId) {
     var form = $("input[value=" + shipmentId + "]").parent(); //formName: ListTruckSheets_o_7
     var routeId = form.find("option:selected").text();
     var resultUrl = existingUrl + "&facilityId=" + routeId;
     $('.buttontext').attr('href', resultUrl); // this is setting resultUrl to all the .buttontext class elements but I need to set resultUrl to only specific selected td.
}

そのため、親の tr を見つけて特定の td に戻り、それに resultUrl を設定する必要があるかもしれません。やり方がわかりません。私の質問が明確であることを願っています。

4

1 に答える 1

0

これをテストできます:

form
  .closest('tr')   // go parent tr of form
  .find('.specific_selected_td') // find td, here specific_selected_td is 
                                 // assumed class to selected td
                                 // you may have something different 
  .find('a')  // find anchor tag within that specific td
  .attr('href', resultUrl); // set href

編集後

変化する

$('.buttontext').attr('href', resultUrl); 

$(existingUrl).attr('href', resultUrl);

ここでexistingUrlは、クリックされた を指しますa

于 2012-08-17T13:11:01.697 に答える