我在表单中的每个链接上自动生成输入标记,使链接中的 .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>
编辑:即使在清除缓存后,页面刷新后页面也能正常工作。该错误仅在第一次浏览器加载时出现。