通过多个DIV元素访问每个选定的选项值

时间:2012-11-19 08:46:14

标签: jquery html

让我们说

  • 我有多个DIV元素 我不知道我有多少DIV 因为它们是由其他应用程序生成的。

  • 无论如何,因为它是纯HTML元素,
    我想通过使用Jquery来迭代每个DIV 因为我想访问每个DIV内的每个下拉列表。

/// I want to iterate each and every Divs 
/// by using loop
for(int i=0; i<DIVs.Count; i++){       

/// I want to access each and every html dropdowns
/// I want to get each and every selected dropdown value
for(int j=0; j<DIVs[i].DropdownList.Count; j++){
    alert(DIVs[i].DropdownList[j].SelectedValue);
}

/// Then finally , I want to get hidden productID
alert(Divs[i].HiddenProductID);
}

所以任何人都可以给我建议如何将我的上层算法更改为jquery代码。

我还将我的html上传到jsfiddle site,以便每个人都可以看到明显的。

每个建议都会非常感激。

3 个答案:

答案 0 :(得分:2)

您可以尝试以下代码:

$("div._Individual_Product_").each(function (index,elem) {    
    $("select",$(this)).each(function(){
        alert($(this).val());    
    });
});

答案 1 :(得分:1)

如果您需要获取两个独立的值和ID数组,则只需使用以下代码:

var values = [];
$(".dynamicDropDownList").each(function (index) {
    var selectValue = this.value;
    values.push(selectValue);
    console.log(index + " - " + selectValue);
});
var productIds = [];
$("._class_hidden_Product_ID_").each(function (index) {
    var productId = this.value;
    productIds.push(productId);
    console.log("Product " + index + "'s id is " + productId);
});

如果您需要配对,可以使用以下内容:

var products = [];
$("._Individual_Product_").each(function () {
    var $this = $(this);
    products.push({
        selectValue: $this.find(".dynamicDropDownList").val(),
        productId: $this.find("._class_hidden_Product_ID_").val()
    });
});

另外,你实际上可以知道有多少div。任何jQuery对象都有length属性,它告诉您匹配的DOM元素的确切数量。因此$("._Individual_Product_").length将返回所需的号码。

答案 2 :(得分:1)

这是你在jQuery中的代码

// 1. Iterate through every DIVs
$("div._Individual_Product_").each(function() {

    // 2. Iterate through every dropdownlists inside each DIVs
    $("select",$(this)).each(function(){

          // 3. Get each and every selected dropdown value
          alert($(this).val()); 
    });
});

你也可以得到这样的DIV和下拉列表:

var div = [];
var dropdownList = [];

// 1. Iterate through every DIVs
$("div._Individual_Product_").each(function() {

    div.push($(this));

    // 2. Iterate through every dropdownlists inside each DIVs
    $("select",$(this)).each(function(){

          dropdownList.push($(this).val());
    });

    // 3. Count dropdownlists inside each DIVs
    alert('DropdownList Count - ' + dropdownList.length);
    dropdownList = [];
});

alert('DIVs Count - ' + div.length);

希望这有帮助!