フォーム内の各リンクに入力タグを自動的に生成し、リンクの .html() を入力 val() にします。取得したいテキストは <strong> タグ内にあるため、.children() 関数を使用します。
問題は、このコードが正しく機能するためにページを更新する必要があることです。ただし、 var htmltoval return 'undefined' は、このループを $(document).ready などの前、後、上に配置しようとしています...
要素が動的に追加されたためだと思います。
コードは次のとおりです。
var content_input = '<input class="btn_menu_search" type="radio"/>';
$('form#form_search a').after(content_input);
$('#form_search :input').each(function () {
var htmltoval = $(this).prev('a').children().html().toLowerCase();
console.log(htmltoval) // return undefined on first page load
// however return the inner html string as expected
var htmltoval = htmltoval.split(' ').join('');
$(this).val(htmltoval);
});
何か案は?
ここで html を更新します。
<form method="post" action="#" id="form_search">
<h4 class="title"><span><strong>Villes</strong></span></h4>
<ul class="list-arrow" id="bienes">
<li><a class="bienes"><strong>Paris</strong></a></li>
<li><a class="bienes"><strong>Londres</strong></a> </li>
<li><a class="bienes"><strong>Tokyo</strong></a></li>
<li><a class="bienes"><strong>Moscou</strong></a></li>
<li><a class="bienes"><strong>Rio de Janeiro</strong></a></li>
</ul>
<!-- etc-->
</form>
編集:キャッシュをクリアした後でも、ページを更新した後、ページは正常に機能します。このバグは、最初のブラウザーのロード時にのみ発生します。