如何获得跨度动态值Li UL内
问题描述:
我的ASPX代码如下所示:如何获得跨度动态值Li UL内
<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
?
答
你的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.
})
您的HTML完全无效。 1)你不能将'a'元素作为'ul'的直接子元素。 'li'必须是子元素。 2)你有重复的'id'属性。 3)'span'元件不具有一个'value'属性4)'A'元件必须具有一个'href'或'name'属性。 –
$( '#userlistspan')ATTR( '值')。 – Mitali
'userlistspan'总是返回第一个attr值。 –