我试图获取嵌套元素的值,这些元素具有跟随某个类的相同类。
<li class="selected">
<a class="hello">A</a>
</li>
<li>
<a class="hello">B</a>
</li>
<li class="selected">
<a class="hello">C</a>
</li>
所以,我想得到一个&#39;&#39; C&#39;使用以下JQuery。
var values = $('.selected > .hello').map(function() { return $(this).val(); }).get();
我可以得到A&#39;,&#39; B&#39;,&#39; C&#39;如果我只使用$(&#39; .hello&#39;)。map(....)。
我在这里缺少什么?
答案 0 :(得分:2)
你的逻辑几乎是正确的。问题是因为您使用val()
但a
元素没有value
属性。请改用text()
:
var values = $('.selected > .hello').map(function() {
return $(this).text();
}).get();
console.log(values);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="selected">
<a class="hello">A</a>
</li>
<li>
<a class="hello">B</a>
</li>
<li class="selected">
<a class="hello">C</a>
</li>
</ul>
&#13;
答案 1 :(得分:0)
var values = $('li.selected > .hello').map(function() {
return $(this).text();
}).get();
console.log(values)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="selected">
<a class="hello">A</a>
</li>
<li>
<a class="hello">B</a>
</li>
<li class="selected">
<a class="hello">C</a>
</li>
So, I want to get 'A', 'C' with the following JQuery.
&#13;
使用li.selected
因为第二个李没有课程,所以会被排除