0

我有这样的html”

<div id="words" style="opacity: 1; visibility:hidden;">
    <div id="row1" style="top: 1px;">
        <span wordnr="0" class="highlight">took</span>
    </div>
</div>

我想得到, 所以我怎么能用孩子 jquery 呢

我努力了:

<script>
   var a=$("#words").children('#row1').children('.highlight');
   alert( a );
</script>
4

5 回答 5

1

由于有效的 html id 是唯一的,因此您只能使用 row1,还有一件事是将代码放入document.ready以确保对javascript/jquery.

现场演示

$(document).ready(function(){
  $('#row1').children('.highlight').each(function(){
      alert($(this).text()); 
  });
});

如果您通过选择器仅获得一个元素,您甚至不需要每个元素。

 var forTook = $('#row1').children('.highlight').text();

或者

var forTook = $('#row1 .highlight').text();
于 2013-01-28T10:47:22.623 回答
0

你几乎在那里:

<script>
   var a = $('#words').children('#row1').children('.highlight').text();
   alert( a );
</script>

正如 Adil 所说,如果有多个匹配元素,您将需要遍历匹配元素。

于 2013-01-28T10:53:03.720 回答
0

只是为了详细说明;你不能像你的例子那样提醒一个 jquery 对象:

var a = $("#words").children('#row1').children('.highlight');

在这种情况下,a将是一个 jQuery 对象,它具有类似数组的结构。

考虑到上述情况(假设您选择了正确的元素),您可以像@Adil 的示例一样对其进行迭代:

$.each(a, function(i, el){
    alert($(el).text());
});
于 2013-01-28T10:51:00.837 回答
0

试试这个:.find()使用.children()

$("#words").children().find('.highlight').text();
于 2013-01-28T10:51:24.363 回答
0

如果您.highlight的 HTML 中有多个元素,则必须遍历它们:

$('#row1 .highlight').map(function() {
    return $(this).text();
}).get();

这将返回一个包含所有突出显示的单词的数组。

于 2013-01-28T10:51:34.407 回答