1

我需要从 UL 列表中获取内容,然后才能使用它来发送电子邮件。但我坚持在 jquery 中获取 ul 列表。我搜索并发现以下内容:

$(document).ready(function(){
    $("#send").click(function() { //When trigger is clicked...
            var optionTexts = [];
            $("#thelist").each(function() { optionTexts.push($(this).text()) });
            var text = '"' + optionTexts.join('"<br/> "') + '"';

            $("#result").append(text);

        });
    });

但这会返回页面内的所有内容:S 这是我的 ul 列表:

<ul id="thelist">
  <li style="height: 65px; display: list-item; ">
    <ul>
      <li class="botHeader">
        "Evelin dice"
                <span>14:37:52</span>
      </li>
      <li class="botMsg">
        "Hola, bienvenido"
      </li>
    <ul>
  </li>
  <li style="height: 26px; display: list-item; ">
    <ul>
      <li class="userHeader">
        "Usted dice"
                <span>14:37:59</span>
      </li>
      <li class="userMsg">
        "Hola como estas"
      </li>
    <ul>
  </li>
  <li style="height: 39px; display: list-item; ">
    <ul>
      <li class="botHeader">
        "Evelin dice"
                <span>14:37:59</span>
      </li>
      <li class="botMsg">
        "Gracias por preguntar, todo bien"
      </li>
    <ul>
  </li>
</ul>

<a href="#" id="send">enviar</a>
<div id="result">

</div>
4

3 回答 3

4

这应该一次性完成所有工作,并且没有任何临时变量:

$('#result').append(
    $('#thelist').find('li').filter(function() {
        return $(this).find('ul').length === 0;
    }).map(function(i, e) {
        return $(this).text();
    }).get().join('<br/>')
);

您必须只考虑<li>没有任何<ul>后代的元素。

在http://jsfiddle.net/alnitak/JVS7d/工作演示

于 2012-05-25T20:50:49.857 回答
1

首先,您的标记无效。你错过了</ul>你内心清单的结束。其次,您只需要li为您的$.each(...)功能添加选择器。

$(document).ready(function(){
    $("#send").click(function() { //When trigger is clicked...
        var optionTexts = [];
        $("#thelist li").each(function() { optionTexts.push($(this).text()) });
        var text = '"' + optionTexts.join('"<br/> "') + '"';

        $("#result").append(text);
    });
});   
于 2012-05-25T21:04:36.553 回答
0

在我看来你应该$("#thelist").each(function...改变$("#thelist ul li").each(function...

于 2012-05-25T20:50:32.230 回答