jquery:匹配所选表行的所有电子邮件

时间:2016-04-25 14:36:56

标签: jquery match

我被困在这里。喜欢提取所有mailto: hrefs并用分隔符分隔它们。

HTML

<table class="table table-striped fadeactions users">

  <tbody>
    <tr class="user" id="user_21278">
      <td class="dim">21278</td>
      <td>
        <input checked="checked" id="user_ids_" name="user_ids[]" type="checkbox" value="true" />
      </td>
      <td>Helga</td>
      <td class="fadeactions col-md-2">
        <a data-placement="top" data-title="User details and assigned groups" data-toggle="tooltip" href="/users/21278"><i class="fa fa-user"></i></a>
        <a data-placement="top" data-title="Email to" data-toggle="tooltip" href="mailto:aaa@helga.com"><i class="fa fa-envelope-o"></i></a>

      </td>
    </tr>

    <tr class="user" id="user_18333">
      <td class="dim">18333</td>
      <td>
        <input checked="checked" id="user_ids_" name="user_ids[]" type="checkbox" value="true" />
      </td>
      <td>Franziska</td>
      <td class="fadeactions col-md-2">
        <a data-placement="top" data-title="User details and assigned groups" data-toggle="tooltip" href="/users/18333"><i class="fa fa-user"></i></a>
        <a data-placement="top" data-title="Email to" data-toggle="tooltip" href="mailto:franziska@ksgr.be"><i class="fa fa-envelope-o"></i></a>
      </td>
    </tr>

  </tbody>
</table>

<br/>
<textarea id="maila"></textarea>

的jQuery

$('tr td:has(input:checkbox:checked) ~ td > a').each (i, e) ->
  em=$(e).attr('href').match('mailto\\:.*').replace('mailto:','')
  $('#maila').append(em);

实际上复选框匹配和mailto:匹配确实有效,但是添加替换功能我再也没有输出了。 感谢您还展示了如何在地址之间插入分隔符(;)。 最后,我喜欢:

franziska@ksgder.be; irene@triich.com

另请参阅JSFiddle

上的示例

1 个答案:

答案 0 :(得分:1)

试试这个:

&#13;
&#13;
var emails = [];

$('tr td:has(input:checkbox:checked) ~ td > a[href^="mailto"]')
  .each(function() {
    console.log('test');
    var
      $this = $(this),
      email = $this.attr('href').replace('mailto:', '');

    emails.push(email);
  });

$('#maila').val(emails.join(';'));
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="table table-striped fadeactions users">

  <tbody>
    <tr class="user" id="user_21278">
      <td class="dim">21278</td>
      <td>
        <input checked="checked" id="user_ids_" name="user_ids[]" type="checkbox" value="true" />
      </td>
      <td>Helga</td>
      <td class="fadeactions col-md-2">
        <a data-placement="top" data-title="User details and assigned groups" data-toggle="tooltip" href="/users/21278"><i class="fa fa-user"></i></a>
        <a data-placement="top" data-title="Email to" data-toggle="tooltip" href="mailto:aaa@helga.com"><i class="fa fa-envelope-o"></i></a>

      </td>
    </tr>

    <tr class="user" id="user_18333">
      <td class="dim">18333</td>
      <td>
        <input checked="checked" id="user_ids_" name="user_ids[]" type="checkbox" value="true" />
      </td>
      <td>Franziska</td>
      <td class="fadeactions col-md-2">
        <a data-placement="top" data-title="User details and assigned groups" data-toggle="tooltip" href="/users/18333"><i class="fa fa-user"></i></a>
        <a data-placement="top" data-title="Email to" data-toggle="tooltip" href="mailto:franziska@ksgr.be"><i class="fa fa-envelope-o"></i></a>
      </td>
    </tr>

  </tbody>
</table>

<br/>
<textarea id="maila"></textarea>
&#13;
&#13;
&#13;