Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取<;李>;基于类的价值_Javascript_Jquery_Html_Html Lists_Getelementbyid - Fatal编程技术网

Javascript 获取<;李>;基于类的价值

Javascript 获取<;李>;基于类的价值,javascript,jquery,html,html-lists,getelementbyid,Javascript,Jquery,Html,Html Lists,Getelementbyid,我有以下示例代码: <ul class="name_of_class" id="TEST"> <li class="foo">1</li> <li class="boo">2</li> <li class="goo">3</li> <ul> 我试图获取中实际文本的值,但一直没有定义 var li = document.getElementById('TEST'); alert

我有以下示例代码:

<ul class="name_of_class" id="TEST">
    <li class="foo">1</li>
    <li class="boo">2</li>
    <li class="goo">3</li>
<ul>
我试图获取
  • 中实际文本的值,但一直没有定义

    var li = document.getElementById('TEST');
    alert($('#TEST').filter('.sort').html());
    
    我尝试使用不同的方法,但无论我做什么,都无法获得实际值,在本例中,实际值应为
    222


    知道我做错了什么吗?

    您可以使用
    sortUp
    sortDown
    选择
    li
    ,方法是使用
    [attribute*=“value”]
    选择器

    [attribute*=“value”]选择器用于选择其 属性值包含指定的值

    const li=document.querySelector('[class*=“sort”]');
    console.log(li.textContent);
    li.style.background=“红色”
    
    • 111
    • 222
    • 333

    您可以使用
    sortUp
    sortDown
    选择
    li
    ,方法是使用
    [属性*=“值”]
    选择器

    [attribute*=“value”]选择器用于选择其 属性值包含指定的值

    const li=document.querySelector('[class*=“sort”]');
    console.log(li.textContent);
    li.style.background=“红色”
    
    • 111
    • 222
    • 333

    我不确定这些类与获取单击的
    li
    元素的文本的要求有什么关系。只需设置
    单击
    ul
    上的
    事件处理程序,然后在处理程序中,检查事件目标以确保它是
    li
    ,然后只需获取事件目标的文本

    document.getElementById(“测试”).addEventListener(“单击”),函数(evt){
    if(evt.target.nodeName==“LI”){
    警报(evt.target.textContent);
    }
    });
    
    • 1
    • 2
    • 3

    我不确定这些类与获取单击的
    li
    元素的文本的要求有什么关系。只需设置
    单击
    ul
    上的
    事件处理程序,然后在处理程序中,检查事件目标以确保它是
    li
    ,然后只需获取事件目标的文本

    document.getElementById(“测试”).addEventListener(“单击”),函数(evt){
    if(evt.target.nodeName==“LI”){
    警报(evt.target.textContent);
    }
    });
    
    • 1
    • 2
    • 3

    也许你可以试试这个:

    alert($('#TEST').find('li[class^='sort']').html());
    
    您将发现一个li元素,它的类以“sort”开头。
    您可以看到此选择器的更多信息。

    也许您可以尝试以下方法:

    alert($('#TEST').find('li[class^='sort']').html());
    
    您将发现一个li元素,它的类以“sort”开头。
    您可以看到此选择器的更多内容。

    从哪里获得
    .sort
    类名?
    $('#TEST')。过滤器('.sortDown')。html()
    可能是?@nidhenjoseph它返回
    未定义的
    。从哪里获得
    .sort
    类名?
    $('#TEST')。过滤器('.sortDown').html()
    可能是?@nidhenjoseph它返回未定义的
    'li[class^='sort'].
    中的引号有误-应该是
    'li[class^=“sort”].
    ,也要避免对包含多个值的属性(如类)使用这种语法。只需将另一个类添加到元素中,JS就会失败。您将
    'li[class^='sort']'
    中的引号弄乱了-应该是
    'li[class^=“sort”]'
    ,也要避免在包含多个值的属性(如class)上使用这种语法。只需向元素添加另一个类,就可以看到JS失败得很惨。