我想使用jQuery迭代以下示例中的<div>
列表:
<div id="selectedDefinitionsDiv">
<div id="selectedDef1" class="myclass">
<textarea class="textClass" style="margin-left:5px;width:600px;height:80px;">an adoptive country</textarea>
<input type="button" onclick="removeSelectedDefinition(1)" value="Delete">
</div>
<div id="selectedDef2" class="myclass">
<textarea class="textClass" style="margin-left:5px;width:600px;height:80px;">my adopted state</textarea>
<input type="button" onclick="removeSelectedDefinition(2)" value="Delete">
</div>
</div>
我想提取每个textareas中的数据。在上面的示例中,an adoptive country
和 my adopted state
我试过了
$(#selectedDefinitionsDiv).children('myclass').each(function(i) {
var val = $(this).children('textClass').value;
processString( val );
});
但它根本不会进入循环。知道我的jQuery有什么问题吗?
答案 0 :(得分:3)
选择器
中缺少引号更改强>
$(#selectedDefinitionsDiv)
以强>
$("#selectedDefinitionsDiv")
还将值更改为val()并添加。在选择器
中的类名之前$("#selectedDefinitionsDiv").children('.myclass').each(function(i) {
var val = $(this).children('.textClass').val();
processString( val );
});
关于关闭第一个div的>
的更多事情
<强> Live Demo on jsBin 强>
<强> Live Demo on jsFiddle 强>
答案 1 :(得分:2)
答案 2 :(得分:1)
看起来需要一点整洁 - myclass
需要以.
为前缀,id
需要在引号中。
children('.textClass')
还需要.
前缀:
$("#selectedDefinitionsDiv").children(".myclass").each(function(i)
{
var val = $(this).children('.textClass').val();
processString( val );
});
答案 3 :(得分:1)
使用现有代码,您可能会收到JavaScript错误,因为语法是非法的。这解释了为什么代码没有执行。
是非法的语法$(#selectedDefinitionsDiv)
缺少周围的引号,如$('#selectedDefinitionsDiv')
。
然而,虽然这修复了语法错误,但选择器还存在其他问题。
第二个和第三个选择器children('myclass')
和.children('textClass')
中的CSS类选择器缺少前导.
- 它应该是.myclass
和.textClass
而你需要使用jQuery的.val()
而不是普通的JavaScript .value
,因为您调用.value
的对象是一个jQuery对象。
更简单的解决方案是提供更具体的选择器:
$('#selectedDefinitionsDiv .textClass').each(function(i) {
var val = $(this).val();
processString(val);
});
答案 4 :(得分:0)
试试这个:
$('textarea').each(function(i) {
var val = $(this).val();
processString( val );
});
希望这有帮助。