根据类获取<li>值

时间:2019-08-26 23:51:35

标签: javascript jquery html html-lists getelementbyid

我有以下示例代码:

<div class="block" onclick="removesBlock(this)">
</div>
<div class="block" onclick="removesBlock(this)">
</div>
<div class="block" onclick="removesBlock(this)">
</div>

选择了特定的<ul class="name_of_class" id="TEST"> <li class="foo">1</li> <li class="boo">2</li> <li class="goo">3</li> <ul> 后,该类将更改为名称加上<li>sortUp的任何名称。

示例:

sortDown

我正在尝试获取<ul class="name_of_class" id="TEST"> <li class="foo">111</li> <li class="boo sortDown">222</li> <li class="goo">333</li> <ul> 中实际文本的值,但是我一直在不确定。

<li>

我尝试使用不同的方式,但是无论我做什么,我都无法获得实际值,在这种情况下,实际值应该为var li = document.getElementById('TEST'); alert($('#TEST').filter('.sort').html());

知道我在做什么错吗?

3 个答案:

答案 0 :(得分:1)

您可以使用li选择器来选择sortUpsortDown的{​​{1}}

  

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

[attribute*="value"]
const li = document.querySelector('[class*="sort"]');
console.log(li.textContent);

li.style.background = "red";

请参见css attribute selectors

答案 1 :(得分:1)

我不确定这些类与获取单击的<ul class="name_of_class" id="TEST"> <li class="foo">111</li> <li class="boo sortDown">222</li> <li class="goo">333</li> <ul>元素的文本的要求有什么关系。只需在li上设置click事件处理程序,然后在处理程序中检查事件目标以确保它是ul,然后获取事件目标的文本即可。 / p>

li
document.getElementById("TEST").addEventListener("click", function(evt){
  if(evt.target.nodeName==="LI"){
    alert(evt.target.textContent);
  }
});

答案 2 :(得分:0)

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

CREATE VIEW all_formulas as
select f.id,
       f.name, 
       f.abbreviation,
       c.id as category_id,
       c.name as category_name,
       fr.parent_id,
       case when (select count(*)
                  from formula_relationships
                  where parent_id = f.id) = 0
       then 0 --IS EQUIVALENT TO FALSE IN SQLITE
       else 1 --IS EQUIVALENT TO TRUE IN SQLITE
       end as has_children,
       f.function
from formula f
left join formula_relationships fr on f.id = fr.child_id
left join category c on f.category_id = c.id
where f.category_id = c.id;

您会发现一个li元素具有一个以“ sort”开头的类。 您可以看到更多此选择器here