如何使用jquery找到下一个td元素类型

时间:2014-03-31 08:04:49

标签: javascript jquery html

<tr>
<td class="value" style="width:40%;">
<label class="label">Gender value</label>
</td>
<td class="value" style="width:40%;">
<input id="checkbox" type="checkbox" tabindex="0" name="chkCustom">
<label>M</label>
<input id="checkbox" type="checkbox" tabindex="0" name="chkCustom">
<label>F</label>
<input id="checkbox" type="checkbox" tabindex="0" name="chkCustom">
<label>U</label>
</td>
</tr>

我有上面的HTML,我正在动态地阅读网页上的所有控件。在上面我想读取其指定类型的标签值,并根据其类型读取下一个值:

请查看我的代码:

     // Read labels text
        $("#tblCustomFields tr .label").each(function () {
            var value = this.innerHTML;
            console.log(this);
            var type = $(this).closest('td').next().find('input').val();
            alert(value);
            alert(type);
   //If next element type is *checkbox* then read checkbox values
        if(type == "checkbox")
        {

     // Read checkbox values

    $('tblCustomFields tr input:checked').each(function (s) {
        var inputCheckBox = new Array();
        inputCheckBox.push([this.id, 0]);
    });

    for (var i = 0; i < inputCheckBox.length; i++) {
        alert(inputCheckBox[i]);
    }
    }
    });

上面的代码会给我网页上的所有复选框,但我想要只在上面的HTML中定义的复选框,我也想要只读取那些被选中的复选框的值。请帮忙。

目标:我将动态HTML绑定到页面,其类型可能是复选框下拉列表文字。现在我想阅读页面标签和与该标签相关的值。对于我的标签(性别值),其值为复选框,因此我只想阅读与该标签相关的已选中复选框值。

更新:至少告诉我如何获得下一个元素类型

我使用以下代码:

 var type = $(this).closest('td').next().find('type').val();

任何帮助

2 个答案:

答案 0 :(得分:0)

我认为所有标记都必须经过审核,但无论如何,我想我知道(请注意我,如果没有)你想要什么。

试试这个:

// Read labels text
        $("#tblCustomFields tr .label").each(function () {
            var value = this.innerHTML;
            console.log(this);
            alert(value);
            var inputCheckBox = new Array();
            $(this).first().closest("td").next().find("input[type='checkbox']:checked").each(function(){
                inputCheckBox.push($(this).next("label").text());
            });

    for (var i = 0; i < inputCheckBox.length; i++) {
        alert(inputCheckBox[i]);
    }
    });

我会让你jsFiddle进行测试。

答案 1 :(得分:0)

你的问题令人困惑。

$(&#34; #tblCustomFields tr .label&#34;) - 这将寻找一个TR为标签的孩子。您的HTML显示其位于 td 内。如果所有标签元素都有类标签,您可以通过 -

来引用每个标签元素
$(".label).each(function(){
//do whatever you want  
});

使用类标签 -

获取标签旁边的元素类型
$(".label).each(function(){
 var NextTd  = $(this).parent().next(); // refers to the next td
  $(NextTd).each(function(){
    var type = $(this).find('input').prop('tagName');
//do whatever you want  
});
});