如何从动态创建的html选择中获取所选文本?

时间:2015-04-25 12:31:29

标签: jquery html asp.net

这是一个页面的一部分,numberOfP是我从数据库获得的整数并且是可变的。

<div>
<%
 string matn = "";
 for (int i = 0; i < numberOfP; i++)
 {
     matn+= " <div class='CMSdiv'>";

     matn += "<input id='Text"+i+"' class='labelhid' type='text' />";
     matn += "<select id='Select"+i+"' class='drophid'>";
     matn += "<option>value= '"+ "خیلی زیاد"+"'>خیلی زیاد" + " <option value= '"+"زیاد'"+">زیاد";
     matn += "</select>";
     matn += "</div>";
     Response.Write(matn);
     matn = "";
 }
%>
</div>

现在我想知道每个&#34; CMSdiv&#34;什么是html选择的文本,然后获取其值并在后面的代码中更改我的类的第3项(其中包含3个元素)。

我写了这段代码来获取一个选定的项目并倒入标签,然后从该标签获得。但它不起作用。为什么呢?

<script type="text/javascript">
$(document).ready(function () {
$('.CMSdiv .drophid').each(function() {
       var selectedText = $(this).find('option:selected').text();
       document.getElementById("Labelhid").value = selectedText;
   });
   });
</script>

2 个答案:

答案 0 :(得分:0)

您可以使用

在选择字段中获取所选选项的文本
$( "selectElementSelector option:selected" ).text();

但是,根据您的示例,您的所有选项都是&#34;&lt; option&gt;&lt; / option&gt;&#34;所以他们不会有任何文字。它也看起来没有选择默认选项,因此可能为空。

进一步扩大......

$('.CMSdiv .drophid').each(function() {
    var selectedText = $(this).find('option:selected').text();
    console.log("My Selected text is: "+ selectedText);
});

答案 1 :(得分:0)

您的select标签已有id属性。做一个while循环并在其内部递增,然后在不再找到对象时中断:

var i = 0;
while (true) {
    var select = document.getElementById('Select' + i);

    if (!select) {break;}
    i++;
}