我的ASPX代码如下所示:
<ul id="userlist">
<a class="s-test">
<li>
<span id="userlistspan" class="tt-User" value="1">Cardiologist</span>
<span id="userlistspan1" class="tt-Userss">SPECIALITY</span>
</li>
</a>
<a class="s-test">
<li>
<span id="userlistspan" class="tt-User" value="2">Cardio</span>
<span id="userlistspan1" class="tt-Userss">SPECIALITY</span>
</li>
</a>
</ul>
我尝试过的jQuery是这样的:
$('#userlist li #userlistspan').click(function () {
$('#txtSearch').val($(this).text());
})
//here am getting text like Cardio
如何从value=2
获得span
的价值?
答案 0 :(得分:2)
由于以下几个原因,您的HTML完全无效:
a
元素作为ul
的直接子元素。 li
必须是子元素。 id
在同一文档中应该是唯一的,则您有id
个重复属性,而是使用类来对元素进行分组。span
元素没有value
属性,如果要使用元素存储自定义数据,请使用data-*
属性。a
元素必须具有href
或name
属性,但在这种情况下它们的使用似乎是多余的,因此您可以删除它们。您需要先解决所有问题:
<ul id="userlist">
<li>
<span class="userlistspan tt-User" data-value="1">Cardiologist</span>
<span class="userlistspan1 tt-Userss">SPECIALITY</span>
</li>
<li>
<span class="userlistspan tt-User" data-value="2">Cardio</span>
<span class="userlistspan1 tt-Userss">SPECIALITY</span>
</li>
</ul>
从那里你可以将点击处理程序附加到.userlistspan
类,并使用this
关键字来引用引发事件的元素。然后,您可以使用data()
方法获取data-value
,如下所示:
$('#userlist li .userlistspan').click(function() {
var $span = $(this);
$('#txtSearch').val($span.text());
var value = $span.data('value'); // = 1 or 2, depending on which element you clicked.
})