2

自動的に生成される次のコードがあります。jQuery コードを使用して、div 内の値を取り出してドロップダウン メニューに追加し、「/listing-agent-staff/barack-obama」をオプション値として追加するのに役立ちます。

自動生成コード:

<div class="StaffName">Barack Obama</div>
<div class="StaffName">Bill Clinton</div>
<div class="StaffName">Will Smith</div>

値を挿入したいドロップダウンメニュー:

<label for="Listing_Agent_Staff">Listing Contact</label>
<select name="Listing_Agent_Staff" id="Listing_Agent_Staff" class="cat_dropdown">
<option value="">-- Please select --</option>
<option value="/listing-agent-staff/barack-obama">Barack Obama</option>
<option value="/listing-agent-staff/bill-clinton">Bill Clinton</option>
<option value="/listing-agent-staff/will-smith">Will Smith</option>
</select>

最初の部分は自動的に生成されるため、レコードの数は変化することに注意してください。2 番目の部分のオプションの数はそれに対応する必要があります。ありがとうございました。

4

5 に答える 5

3

以下を使用します。

​$(".StaffName")​​​​​​​​.each(function () {
   var name = $(this).text();
   var value = "/listing-agent-staff/" + name.toLowerCase().replace(" ", "-");
   $("<option>").text(name).attr("value", value).appendTo("#Listing_Agent_Staff");
}​);​

ここにデモがあります。

于 2012-08-27T00:43:07.523 に答える
2
var options = '';

$('.StaffName').each(function() {
    var val = $.text(this),
        url = val.toLowerCase().replace(/ /g, '-');
    options += '<option value="/listing-agent-staff/' + url + '">' + val + '</option>';
});

$('#Listing_Agent_Staff').append(options);

これがフィドルです:http://jsfiddle.net/MCKZ7/

于 2012-08-27T00:43:20.343 に答える
1

サーバー側でこれを行うのが理想的であるという前の回答に同意しました。それがうまくいかない場合は、次のように対処する必要があります。

$(function() {
  $('.StaffName').each(function(e) {
    var div = $(this);
    var href = '/listing-agent-staff/' + div.text().toLowerCase().replace(' ', '-');
    $('#Listing_Agent_Staff').append('<option value="' + href +'">' + div.text() + '</option>');
  });
});​

http://jsfiddle.net/hN67g/

于 2012-08-27T00:49:13.827 に答える
1

すべてのStaffName要素を繰り返し処理し、適切な HTML を選択に追加するだけです。

$.each('.StaffName',function(index,elem){
  var oldValue = $(elem).text().toLowerCase();
  var optionValue = '/listing-agent-staff/' + oldValue.replace(' ','-');
  $("#Listing_Agent_Staff").append('<option value="'+ optionValue +'">'+ $(elem).text() +'</option>';
});

ここで行っているのは、すべての.StaffName要素を反復処理し、それぞれのテキスト値を抽出することです。次に、その値が小文字に変換され、すべてのスペースがダッシュに置き換えられます。これは、URL を作成するためのものです。次に、append()関数を使用して追加の HTML コンテンツを#Listing_Agent_Staff要素に追加します。

于 2012-08-27T00:43:17.727 に答える
0

これは、js に新しいコードを記述させることを意味します。最善の解決策は、サーバー側のコード (php?) にドロップダウン コードも書き出すことです。

于 2012-08-27T00:41:17.687 に答える