Jquery получить часть ID - PullRequest
       31

Jquery получить часть ID

0 голосов
/ 31 августа 2018

У меня есть разные элементы с одинаковыми идентификаторами:

<div id="post-32">
<div id="post-50">
<div id="post-80">

и т.д ..

Мне нужно извлечь номер id записи и добавить в div новую кнопку со значением, равным «number-post».

<div id="post-32">...</div>
<div class="myclass">
    <button value="32">click here</button>
</div>

Я пытался с этим кодом, но возвращаю меня для каждого сообщения, столько же кнопок, сколько сообщений.

$("[id^='post-']").each(
    function() {
        var id = $(this).attr("id").split("-")[1];
        var r  = $('<button type="button" id="add" value"'+id+'" name="test">Entra</button>');
        $(".myclass").append(r);
    }
);

спасибо за вашу поддержку.

Ответы [ 3 ]

0 голосов
/ 31 августа 2018

Итак, я думаю, что решение следующее:

var divs = document.querySelectorAll( 'div[id^="post-"]' );
var myClassDiv = jQuery( document.querySelector( 'div.myclass' ) );

if ( 0 < divs.length && myClassDiv ) {
    divs.forEach(
        function ( item ) {
            var itemID = item.id.split('-')[1];
            var button = document.createElement('button');

            button.type = 'button';
            button.id = 'add'; // you should normally use a unique ID here.
            // button.id = 'add-' + itemID; in order to have a unique button ID
            button.value = itemID;
            button.name = 'test';
            button.innerText = 'Entra'

            myClassDiv.append( jQuery( button ) );
        }
    );
}
0 голосов
/ 31 августа 2018

Это всё что угодно ...

$("[id^='post-']").each(
    function() {
        var id = $(this).attr("id").split("-")[1];
        var r  = $('<div class="myclass"><button type="button" id="add-'+id+'" value="'+id+'" name="test['+id+']">Entra</button><div>');
        $(this).prepend(r);
    }
);
.myclass{display:inline-block;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div id="post-32">The quick brown </div>
<div id="post-50">fox jumps over </div>
<div id="post-80">the lazy dog </div>
0 голосов
/ 31 августа 2018

Это то, что вы пытаетесь сделать?

$("[id^='post-']").each(
   function() {
      var id = $(this).attr("id").split("-")[1];
      var r  = $('<button type="button" id="add-' + id + '" value"'+id+'" name="test-' 
      + id + '">Entra</button>');
      $(this).append(r);
  }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...