正确使用jquery选择器
我有以下html:正确使用jquery选择器,jquery,Jquery,我有以下html: <div class="mainmenu"> <ul class="blue"> <li class=""><a href="tst/" id="a1_up"><span class="all">tst1</span></a></li> <li class=""><a href="tst1/" i
<div class="mainmenu">
<ul class="blue">
<li class=""><a href="tst/" id="a1_up"><span class="all">tst1</span></a></li>
<li class=""><a href="tst1/" id="a2_up"><span class="all">tst2</span></a></li>
<li class=""><a href="tst3/" id="a3_up"><span class="all">tst3</span></a></li>
<li class=""><a href="tst4/" id="a4_up"><span class="all">tst3</span></a></li>
<li class=""><a href="tst5/" id="a5_up"><span class="all">tst4</span></a></li>
<li class=""><a href="tst6/" id="a6_up"><span class="all">tst5</span></a></li>
<li class=""><a href="tst7/" id="a7_up"><span class="all">tst6</span></a></li>
</ul>
</div>
但什么也没发生。上传到这里:
实时编辑:
您的span元素没有值(
val()
)
尝试获取text()
:
alert($(this).text());
试试这个:工作演示 p、 美国JSFIDLE的表演很有趣,否则我已经准备好了演示
:)
a
介于li
和span
之间,您可以在上面的演示中看到:$(document).ready(function() {
alert('f');
$("div.mainmenu ul li a span").each(function() {
alert($(this).text());
});
});
你可以用它来得到结果。(span没有值,应使用.text()
获取内部HTML文本)
您的选择器完全错误:
“>”
表示直接子项
,并且span
不是li
的直接子项,a
是
将其重写为.main菜单ul li span
,或者更好地使用更短的选择器,如:
$('.mainmenu span.all')
或
1-您的
span
元素不是li
元素的直接后代,因此选择器
(".mainmenu ul li > span")
不匹配任何元素。改为写入$(“.main菜单li span”)
2-使用
text()
method代替val()
method,以下是使用jquery选择正确选择器并对其应用正确属性的解决方案
$(document).ready(function() {
var result = '';
$(".mainmenu ul li span.all").each(function() {
result += '<div><a href="#">' + $(this).text() + '</a></div>';
});
$('#result').html(result);
$("#result").addClass("output")
$(文档).ready(函数(){
var结果=“”;
$(“.main菜单ul li span.all”)。每个(函数(){
结果+='';
});
$('#result').html(result);
$(“#结果”).addClass(“输出”)
}))
我已经用解决方案创建了一个bin,你想收集哪个值?@GandalfStormCrow嘿,你的
li
和span
之间似乎有一个标记,这使得选择器错误,我第一次使用jsbin,因此需要时间,:)
@GandalfStormCrow工作演示:希望这有帮助
$('.mainmenu span.all')
$('.blue span')
(".mainmenu ul li > span")
$(document).ready(function() {
var result = '';
$(".mainmenu ul li span.all").each(function() {
result += '<div><a href="#">' + $(this).text() + '</a></div>';
});
$('#result').html(result);
$("#result").addClass("output")