Получить Tbody рядом с одним ниже текущего Tbody - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть таблица SharePoint, и я хотел бы получить тело таблицы прямо под ним с помощью groupstring.

Пример таблицы

<tbody groupstring=“%3B%23Application%3B%23”>
<tr><td> : Application </td></tr></tbody>
<tbody></tbody>
<tbody>
<tr><td><a href=“https://link1.com”>Link 1</a></td></tr>
<tr><td><a href=“https://link3.com”>Link 3</a></td></tr>
</tbody>

Я получу еще одну ссылку Link2 от Json и динамически вставлю ее между Link1 и Link3 с помощью Jquery

var addRow=function(url,displayName){
Var counter=0;
$(‘tbody[groupstring=“%3B%23Application%3B%23”]’).closest(‘tbody’).find(‘td’).each(function(){
counter++;
If($(this).find(‘td:eq(0)’).text() > displayName){
$(this).before(makeRow(url,displayName));
} else {
If($(this).find(‘td:eq(0)’).text() === displayName){
$(this).html(makeRow(url,displayName));
Return false;
}}
If($(this).closest(‘table’).find(‘td.md-vb2’).length === counter){
$(this).parent().after(makeRow(url,displayName));
} 
});
};

Var makeRow = function(url,displayName){
return (‘<tr><td><a href=“‘ + url + ‘”>’+displayName+’</a></td></tr>’);
};

Я пытаюсь добавить динамический Link2 между Link1 и Link3 в качестве якоря, поместив между ними или заменить, если уже существует с помощью функции addRow. Моя проблема в том, что я могу вставить в tbody после tbody с groupstring , но я хочу вставить в tbody один после пробела TBODY . Может кто-нибудь помочь изменить:

 $(‘tbody[groupstring=“%3B%23Application%3B%23”]’).closest(‘tbody’).find(‘td’).each(function(){

Чтобы получить / получить тело * один за пустым тело ? Я даже попробовал:

$(‘tbody[groupstring=“%3B%23Application%3B%23”]’).closest(‘tbody’).next(‘tbody’).find(‘td’).each(function(){

И

$(‘tbody[groupstring=“%3B%23Application%3B%23”]’).closest(‘tbody’).closest(‘tbody’).find(‘td’).each(function()

Но это не сработало. Любая помощь очень ценится.

1 Ответ

0 голосов
/ 06 ноября 2018

$('tbody[groupstring]').nextAll('tbody:eq(1)') должен это сделать.

Демо-версия:

$(function() {
  var $target = $('tbody[groupstring]').nextAll('tbody:eq(1)');
  console.log($target.html());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<table>
  <tbody groupstring="%3B%23Application%3B%23">
    <tr>
      <td>Application</td>
    </tr>
  </tbody>
  <tbody></tbody>
  <tbody>
    <tr>
      <td><a href="https://link1.com">Link 1</a></td>
    </tr>
    <tr>
      <td><a href="https://link3.com">Link 3</a></td>
    </tr>
  </tbody>
</table>

Также обратите внимание, что groupstring не является допустимым атрибутом HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...