2015-10-16 2 views
1

я иметь следующую структуру:Как получить элемент id и html динамически?

<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. Теперь в основном я хочу захватить div id:div_20735. Если вы заметили, это 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' }); 
    }   

}); 

Любая помощь, чтобы найти лучший способ будет весьма appretiated. Спасибо.

ответ

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

Благодаря Даррен Thats работает отлично в IE!. Несмотря на то, что я больше склонялся к получению идентификатора из поля ввода, а не к атрибуту самого ярлыка, но я считаю, что он должен работать во всех сценариях, поскольку сам ярлык связан с этим полем ввода, которое является обязательным. Но я буду проверять и утверждать более широкую аудиторию. – user2948533

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' }); 
    }   

}); 
Смежные вопросы