我一直在学习自己编写代码并用jquery库做一些奇特的东西,但我被困在这里。这就是我得到的:
<span class='ccy'>San Diego</span><span class='dc'> X</span>
<span class='ccy'>San francisco</span><span class='dc'> X</span>
<span class='ccy'>Palo alto</span><span class='dc'> X</span>
我希望能够点击$(“span.dc”)并只获取&lt;的文本()。跨度&GT;它旁边(城市的名称),如果html中只有一个城市,可以正常工作,但只要我不断添加它们,结果会变得混乱,我最终得到一个包含所有城市名称的字符串,我只需要一个。
我知道显而易见的事情就是给每个人一个不同的id,但它会变得更加混乱'因为html是根据用户触发的先前事件动态生成的,这些城市来自一个数组如果点击'x',我需要从中删除城市的个人名称,我希望我已经解释得很好。
jsfiddle here!!所以你可以更好地看到我的意思
答案 0 :(得分:2)
您可以使用prev()
获取上一个范围。
$("span.dc").click(function() {
var jj = $(this).prev('span.ccy').text();
});
小提琴here
答案 1 :(得分:2)
使用您的标记,最简单的是使用.prev
$(function() {
$(".dc").on("click",function() {
var city = $(this).prev().text();
console.log(city);
$("#msg").html("You clicked "+city);
});
});
&#13;
.dc { padding-right:3px;border-right:1px solid black }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<span class='ccy'>San Diego</span><span class='dc'> X</span>
<span class='ccy'>San Francisco</span><span class='dc'> X</span>
<span class='ccy'>Palo Alto</span><span class='dc'> X</span>
<br/><span id="msg"></span>
&#13;