Wordpress. Скрипт выводящий текст из H2

gingernnz
На сайте с 12.01.2011
Offline
131
285

Добрый день.

Под каждым h2 нужно вставить такой код :

<div data-widget-id="000000" class="class" data-search="text"> </div> (вставляется плагином, тут все ок) )

Но вместо "text" нужно чтобы автоматом подставлялся H2 после которого идет этот код.

То есть у нас в итоге такая конструкция получается:

<h2>Заголовок 1</h2>

<div data-widget-id="000000" class="class" data-search="Заголовок 1"> </div>

<h2>заголовок 2</h2>

<div data-widget-id="000000" class="class" data-search="Заголовок 2"> </div>

<h2>Заголовок 3</h2>

<div data-widget-id="000000" class="class" data-search="Заголовок 3"> </div>

Мне предложили данный вариант, однако он не работает:

<div data-widget-id="000000" class="class" data-search=""></div>

<script>

jQuery(function($){

var currentScript = document.currentScript,

h2Text = $(currentScript).parent().prevAll('h2').eq(0).text(),

dataSearch = $(currentScript).parent().prevAll('[data-search]').eq(0);

dataSearch.attr('data-search', h2Text);

});

</script>

вот его короткая версия

<div data-widget-id="000000" class="class" data-search=""></div>

<script>jQuery(function(e){var r=document.currentScript.parent(),t=e(r).prevAll("h2").eq(0).text();e(r).prevAll("[data-search]").eq(0).attr("data-search",t)});</script>

Может кто подскажет? Я в программировании ни бумбум, так что не могу разобраться как его заставить работать))

Зарабатываю тут ( https://www.admitad.com/ru/promo/?ref=68e5edc1ff ) Тут монетизирую женский трафик ( http://news.gnezdo.ru/p/0/15902/ )
S
На сайте с 30.09.2016
Offline
469
#1
gingernnz:
Мне предложили данный вариант

Его написал какой-то извращенец.

Если нужно изменить data, то как-то так

<script>
$(document).ready(function(){
$('h2').each(function(){
var n=$(this).next();
if(typeof(n.attr('data-search'))!='undefined') n.data('search',$(this).html());
});
});
</script>

Если нужно изменить именно html-код, то так

<script>
$(document).ready(function(){
$('h2').each(function(){
var n=$(this).next();
if(typeof(n.attr('data-search'))!='undefined') n.attr('data-search',$(this).html());
});
});
</script>
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
danforth
На сайте с 18.12.2015
Offline
153
#2


document.querySelectorAll("[data-widget-id]").filter(el => {
return el.prevSibling && el.prevSibling.localName === 'h2'
}).map(el => {
let text = el.prevSibling.innerText;
el.dataset.search = text;
});
Junior Web Developer
S
На сайте с 30.09.2016
Offline
469
#3

............

gingernnz
На сайте с 12.01.2011
Offline
131
#4

Вопрос решен. Спасибо Sitealert

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий