如何动态获取id和html元素?

时间:2015-10-16 11:06:53

标签: javascript jquery css3

我有以下结构:

<input name="20735" class="form-control valid-dateonly error" id="20735" required="" type="text" maxlength="4000" placeholder="" value="">
<label class="error" style="left: 0px; white-space: nowrap; position: absolute;" for="20735">This field is required.</label>
<span class="input-group-addon">            
    <span class="fa fa-calendar"></span>
</span>
<div id="div_20735"></div>

基本上,我在JQuery $this中有标签控件。现在基本上我想用id:div_20735捕获div。如果您观察到,此20735也是输入控件的id,它位于标签上方。 我在猜$(this).prev().id之类的东西......但是我没有得到。但是我得到这个值(20735),当我做$(this).prev().context.htmlfor时...但我不认为那是最好的检索方法。 这就是我的尝试:

 $('label.error').not('.hide').each(function () {

    var previousElm = $(this).prev();
    if ($(previousElm).hasClass("form-control")) {

        $("#div_20735").after($(this));//here I need help to capture the id of the div dynamically

        $(this).css({ 'position': 'absolute', 'white-space': 'nowrap', 'left':'0px' });
    }           

});

任何寻找最佳方式的帮助都会非常有用。 感谢。

2 个答案:

答案 0 :(得分:1)

试试这个 - 它需要for属性值,这是你需要的

$('label.error').not('.hide').each(function () {

    var previousElm = $(this).prev();
    if ($(previousElm).hasClass("form-control")) {

      var divID = $(this).attr('for');

      $("#div_" + divID).after($(this));//here I need help to capture the id of the div dynamically

      $(this).css({ 'position': 'absolute', 'white-space': 'nowrap', 'left':'0px' });
    }           

});

答案 1 :(得分:0)

这个$("#div_" + previousElm.attr('name'))可以解决问题:

$('label.error').not('.hide').each(function () {

    var previousElm = $(this).prev();
    if ($(previousElm).hasClass("form-control")) {

        $("#div_" + previousElm.attr('name')).after($(this));//here I need help to capture the id of the div dynamically

        $(this).css({ 'position': 'absolute', 'white-space': 'nowrap', 'left':'0px' });
    }           

});