javascript - 如何获取li ul内的span动态值

标签 javascript jquery asp.net

我的 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

如何从该 span 中获取诸如 value=2 之类的值?

最佳答案

由于以下几个原因,您的 HTML 完全无效:

  • 不能将 a 元素作为 ul 的直接子元素。 li 必须是子元素。
  • id 在同一文档中应该是唯一的时,您有重复的 id 属性,请改用类对元素进行分组。
  • span 元素没有 value 属性,如果要使用元素存储自定义数据,请使用 data-* 属性.
  • a 元素必须具有 hrefname 属性,但是在这种情况下它们的使用似乎是多余的,因此您可以删除它们。

您需要首先解决所有这些问题:

<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.
})

关于javascript - 如何获取li ul内的span动态值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35698314/

相关文章:

javascript - 如何使选项元素只读但不禁用选择元素

Javascript - 将类添加到元素,从兄弟元素中删除

javascript - ASP.NET Core - 用数据增量填充 View

javascript - 选择输入类型为 :file (pdf) and convert them to base64 string 的本地文件

javascript - Grunt 文件默认将 nonull 设置为 true

javascript - 我如何绕过同源策略来为 Google AppEngine 站点开发 AJAX 客户端代码?

javascript - 使用 Bootstrap 弹出窗口回调

javascript - 路由 asp.net mvc 中的 AJAX 错误

有 promise 的 Javascript (Angularjs) websocket?

javascript - 使用 Chrome 扩展程序在页面加载时重定向