gpt4 book ai didi

jQuery.each - 在 ul 中获取 li 元素

转载 作者:行者123 更新时间:2023-12-03 21:34:30 27 4
gpt4 key购买 nike

我的页面上有以下 HTML:

<div class="phrase">
<ul class="items">
<li class="agap"><ul><li>TEXT1</li></ul></li>
<li class="agap"><ul> </ul></li> <!-- empty ul -->
<li class="aword">TEXT2</li>
..
</ul>
</div>

<div class="phrase"> ... </div>

我想为每个“短语”获取文本变量中“items”中的所有元素,如下所示:

var string = "TEXT1 - BLANK - TEXT2";

我目前有这个 JavaScript 代码:

<script>
$(function() {
$('.phrase .items').each(function(){
var myText = "";

// At this point I need to loop all li items and get the text inside
// depending on the class attribute

alert(myText);

});
};
</script>

如何迭代所有 <li>里面.items

我尝试了不同的方法,但没有得到好的结果。

最佳答案

首先,我认为您需要修复列表,作为 <ul> 的第一个节点必须是<li> (stackoverflow ref)。设置完成后,您可以执行以下操作:

// note this array has outer scope
var phrases = [];

$('.phrase').each(function(){
// this is inner scope, in reference to the .phrase element
var phrase = '';
$(this).find('li').each(function(){
// cache jquery var
var current = $(this);
// check if our current li has children (sub elements)
// if it does, skip it
// ps, you can work with this by seeing if the first child
// is a UL with blank inside and odd your custom BLANK text
if(current.children().size() > 0) {return true;}
// add current text to our current phrase
phrase += current.text();
});
// now that our current phrase is completely build we add it to our outer array
phrases.push(phrase);
});
// note the comma in the alert shows separate phrases
alert(phrases);

工作中jsfiddle .

一件事是如果您得到 .text()上层 li您将获得所有子级别的文本。

保留一个数组将允许提取许多多个短语。

<小时/>

编辑:

这对于空 UL 应该效果更好没有LI :

// outer scope
var phrases = [];

$('.phrase').each(function(){
// inner scope
var phrase = '';
$(this).find('li').each(function(){
// cache jquery object
var current = $(this);
// check for sub levels
if(current.children().size() > 0) {
// check is sublevel is just empty UL
var emptyULtest = current.children().eq(0);
if(emptyULtest.is('ul') && $.trim(emptyULtest.text())==""){
phrase += ' -BLANK- '; //custom blank text
return true;
} else {
// else it is an actual sublevel with li's
return true;
}
}
// if it gets to here it is actual li
phrase += current.text();
});
phrases.push(phrase);
});
// note the comma to separate multiple phrases
alert(phrases);

关于jQuery.each - 在 ul 中获取 li 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6017309/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com