1

<div>在以下示例中,我想使用 jQuery 遍历 s 列表:

<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>

我想提取每个文本区域中的数据。在上面的例子中,这将 an adoptive country my adopted state

我试过了

$(#selectedDefinitionsDiv).children('myclass').each(function(i) { 
    var val = $(this).children('textClass').value;
    processString( val );
});

但它根本没有进入循环。知道我的 jQuery 有什么问题吗?

4

5 回答 5

3

选择器中缺少引号

改变

$(#selectedDefinitionsDiv)

$("#selectedDefinitionsDiv")

还将值更改为 val() 并添加 . 在选择器中的类名之前

$("#selectedDefinitionsDiv").children('.myclass').each(function(i) { 
    var val = $(this).children('.textClass').val();
    processString( val );
});

关于关闭>第一个 div 的更多内容

jsBin 上的现场演示

jsFiddle 上的现场演示

于 2012-09-21T13:07:47.907 回答
2
  1. 您需要引号: $("#selectedDefinitionsDiv")
  2. 取而代之的是价值,你需要使用 val()
于 2012-09-21T13:08:19.450 回答
1

只是看起来需要整理一下 -myclass需要以 a 为前缀,.并且id需要用引号引起来。

children('.textClass')还需要一个.前缀:

$("#selectedDefinitionsDiv").children(".myclass").each(function(i)
{
   var val = $(this).children('.textClass').val();
   processString( val );
}); 
于 2012-09-21T13:10:00.920 回答
1

使用您现有的代码,您可能会收到 JavaScript 错误,因为语法是非法的。这解释了为什么代码没有执行。非法语法是

$(#selectedDefinitionsDiv)

像这样缺少周围的引号$('#selectedDefinitionsDiv')

然而,虽然这修复了语法错误,但选择器还有其他问题。

第二个和第三个选择器中的 CSS 类选择器children('myclass')缺少.children('textClass')前导.- 它应该是.myclass并且.textClass您需要使用 jQuery.val()而不是纯 JavaScript .value,因为您正在调用的对象.value是 jQuery 对象。

一个更简单的解决方案是只提供一个更具体的选择器:

$('#selectedDefinitionsDiv .textClass').each(function(i) {  
    var val = $(this).val();
    processString(val);
});​
于 2012-09-21T13:11:23.133 回答
0

试试这个:

$('textarea').each(function(i) { 
    var val = $(this).val();
    processString( val );
});

希望这可以帮助。

于 2012-09-21T13:36:36.477 回答