2015-10-27 2 views
1

, так что в основном у меня есть около 20 абзацев, которые находятся внутри слайдера, и с каждым абзацем есть кнопка совместного доступа, которая копирует ее innerHTML.Получите значение абзацев с тем же классом

Пример:

<p class="parag">content</p> 
<button onclick="share();"></button> 
<p class="parag">diff content</p> 
<button onclick="share();"></button> 
<p class="parag">another content</p> 
<button onclick="share();"></button> 

Могу ли я сделать что-то вроде массива, чтобы получить один пункт за один раз? Потому что, когда я нажимаю первую кнопку совместного доступа, код копирует первый абзац и, если я нажимаю вторую кнопку общего доступа, у меня все еще есть первый абзац, который копируется, а не второй. Надеюсь, я объяснил свою проблему правильно и благодарю вас заранее.

+2

я думаю, вы должны включать в себя функцию 'доли();' – guradio

+0

I Я сделал опечатку при написании кода примера: p –

ответ

0

попробовать этот

$(document).ready(function() { 
 
    $('button').click(function(e) { 
 
    alert($(this).prev(".parag").text()); 
 
    }); 
 
}) 
 
    
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p class="parag">content</p> 
 
<button onclick="share();">content</button> 
 
<p class="parag">diff content</p> 
 
<button onclick="share();">diff</button> 
 
<p class="parag">another content</p> 
 
<button onclick="share();">another</button>

1

попробовать:

$(document).ready(function() { 
 
    myArray = []; 
 
    $("p").each(function(){ 
 
     alert($(this).attr("class")) 
 
     myArray.push($(this).attr("class")) 
 
    }) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p class="parag">content</p> 
 
<button onclick="share();"></button> 
 
<p class="parag">diff content</p> 
 
<button onclick="share();"></button> 
 
<p class="parag">another content</p> 
 
<button onclick="share();"></button>

+0

Не работает. @ p-frank –

+0

ok попробуйте обновить фрагмент –

+0

Нет, не работает. То, что я пытался сделать, это получить class.value, а затем внутри функции общего доступа я добавил тест [1] (тест - это var, который я назначил) –

0
function share(element) { 
    $(element).prev('p').text(); //the p tag content based on the button 
} 

также упомянуть this в Funtion

<button onclick="share(this);"></button>

0

Попробуйте

$('button').click(function(e) { 
 
    alert($(this).prev().text()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
 
<p class="parag">content</p> 
 
<button>Share</button> 
 
<p class="parag">diff content</p> 
 
<button>Share</button> 
 
<p class="parag">another content</p> 
 
<button>Share</button>

Pure JS:

function share(ele) { 
 
    alert(ele.previousElementSibling.innerHTML); 
 
}
<p class="parag">content</p> 
 
<button onclick="share(this);">Share</button> 
 
<p class="parag">diff content</p> 
 
<button onclick="share(this);">Share</button> 
 
<p class="parag">another content</p> 
 
<button onclick="share(this);">Share</button>

0

Что вы можете сделать, это

HTML:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<p class="parag">content</p> 
<button>1</button> 
<p class="parag">diff content</p> 
<button>2</button> 
<p class="parag">another content</p> 

Javascript

function share(button) { 
    alert(button.prev().text()); 
} 
$(document).ready(function() { 
    $('button').click(function() { 
     share($(this)) 
    }); 
}); 

JS Fiddle Demo

0

вы можете попробовать, как эта функция доля

<p class="parag">content</p> <button onclick="share(this);"></button> <p class="parag">diff content</p><button onclick="share(this);"></button> <p class="parag">another content</p><button onclick="share(this);"></button>

function share(that){ alert($(that).prev('.parag').html()); } 
Смежные вопросы