2012-01-31 67 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