2012-01-31 76 views
0

我有一些選擇/選項的html代碼動態生成的Perl。我使用JQuery在下面的div中顯示每個選項的值。我的問題是如何將JQuery選擇縮小到每個選擇標記?我現在擁有它的方式選擇了所有的標籤。JQuery在動態創建元素中的窄選擇

function changeDesc() { 

    var selectionValue = $('.RandomDiv > fieldset > legend > select').val(); 
    $('.RandomDiv > fieldset > div').html(selectionValue); 
} 

$('.RandomDiv > fieldset > legend > select').each(function() { 
$(this).change(changeDesc); }); 

我真的不能把所有標籤的ID,因爲它們是動態生成的,而且有可能是他們中的很多。 即時通訊新的JQuery和我敢肯定的答案即時尋找可能不那麼辛苦,但我似乎無法得到它。由於

+1

HTML將有助於我們幫助你更好。 – ShankarSangoli 2012-01-31 21:24:22

+0

你能澄清你想完成什麼嗎?您是否嘗試選擇具有給定值的單個選擇標記? – 2012-01-31 21:27:24

回答

0

此:

function displayDesc() { 
    var classSelectionValue; 
    classSelectionValue = $('.ClassDescriptionDiv > fieldset > legend > select').val(); 
    $('.ClassDescriptionDiv > fieldset > div').html(classSelectionValue); 
} 

應該是:

function displayDesc() { 
    var classSelectionValue = $(this).val(); 
    $(this).closest("fieldset").children("div").html(classSelectionValue); 
} 
0

試試這個。

function changeDesc() { 
    //Here this will point to the select element which triggered change event 
    $('.RandomDiv > fieldset > div').html($(this).val()); 
} 

$('.RandomDiv > fieldset > legend > select').change(changeDesc); 

而是有一個單獨的功能,您可以使用匿名函數這樣,你也可以使用closest方法找到封閉fieldset元素,並找到其子div的。

$('.RandomDiv > fieldset > legend > select').change(function() { 
    //Here this will point to the select element which triggered change event 
    var $this = $(this); 
    $this.closest('fieldset').children('div').html($this.val()); 
}); 
+0

您剛剛描述的較短的隨機函數工作得很完美。謝謝。它讓人目瞪口呆,但誰知道它會不會長久。 – user1181365 2012-01-31 21:43:43