2017-02-09 3 views
1

Я пытаюсь добавить некоторый HTML после поля input с помощью jQuery, но он не работает, и я не понимаю, почему.Добавить HTML после элемента ввода с jQuery

<input type="text" value="secret password" maxlength="255" id="ripo" title="Password" class="ms-long ms-spellcheck-true"> 
$(document).ready(function() { 
    jQuery("input[title='Password']").append('<P>test</P>'); 
}); 
+2

добавляемых к входу ????? не имеет смысла –

+0

'jQuery (" input [title = 'Password'] "). val ('

test

');' –

+0

Вы можете добавить p в input val ^? – guradio

ответ

2

Вы должны использовать метод .after().

append метод вставка содержимого до конца каждый элемент в наборе согласованных элементов.

after способ вставить содержимое после каждый элемент в наборе согласованных элементов.

$(document).ready(function() { 
 
    jQuery("input[title='Password']").after('<p>test</p>'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" value="secret password" maxlength="255" id="ripo" title="Password" class="ms-long ms-spellcheck-true">

Кроме того, вы можете использовать insertAfter метод следующим образом.

$(document).ready(function() { 
 
     $('<p>test</p>').insertAfter($("input[title='Password']")); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" value="secret password" maxlength="255" id="ripo" title="Password" class="ms-long ms-spellcheck-true">

+0

Второй способ добавит содержимое в конец '.parent()' не обязательно после ввода. Он будет делать то, что хотел OP, если вход является последним элементом в его родительском элементе. Итак '.after()' это способ пойти –

+0

@MaherFattouh, я обновил свой ответ. –

+0

отлично, спасибо за разъяснение! – dadde

0

Вы не можете добавлять HTML к входу. Но вы можете это сделать (если вы хотите на самом деле установить значение):

$(document).ready(function() { 
    jQuery("input[title='Password']").val('test'); 
}); 

Хотя это не дает ответа на отредактированный вопрос, другие ответы адреса, добавляя элемент после ввода.

+0

Just FYI OP обновил вопрос, чтобы уточнить, что он пытается сделать. 'val()' не является решением здесь. –

+0

обновили мой ответ и оставили его на случай, если кому-то еще понадобится это решение. –

3

append() используется для добавления содержимого внутри элемента, однако образуют входы не содержат каких-либо содержимого. Обычно вы должны использовать val(), чтобы установить их значения.

Однако добиться того, что вам требуется использовать метод after() вместо того, чтобы вставить содержимое в к DOM после выбранного элемента:

$(function() { 
 
    $("#ripo").after('<P>test</P>'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" value="secret password" maxlength="255" id="ripo" title="Password" class="ms-long ms-spellcheck-true">

+0

отлично, спасибо! – dadde

Смежные вопросы