কীভাবে jQuery ব্যবহার করে ক্লিক করে অ্যাঙ্কর টেক্সট / href পাবেন?


113

বিবেচনা করুন আমার কাছে এমন একটি অ্যাঙ্কর রয়েছে যা দেখতে এটির মতো দেখাচ্ছে

 <div class="res">
     <a href="~/Resumes/Resumes1271354404687.docx">
         ~/Resumes/Resumes1271354404687.docx
     </a>
 </div>

দ্রষ্টব্য: অ্যাঙ্কারের জন্য কোনও আইডি বা ক্লাস থাকবে না ...

আমি onclickসেই অ্যাঙ্কারের jQuery এ href / পাঠ্য পেতে চাই ।

উত্তর:


242

দ্রষ্টব্য:info_link আপনি যে কোনও লিঙ্ক থেকে তথ্য পেতে চান তাতে ক্লাস প্রয়োগ করুন ।

<a class="info_link" href="~/Resumes/Resumes1271354404687.docx">
    ~/Resumes/Resumes1271354404687.docx
</a>

Href জন্য:

$(function(){
  $('.info_link').click(function(){
    alert($(this).attr('href'));
    // or alert($(this).hash();
  });
});

পাঠ্যের জন্য:

$(function(){
  $('.info_link').click(function(){
    alert($(this).text());
  });
});

প্রশ্ন সম্পাদনার উপর ভিত্তি করে আপডেট করুন

আপনি তাদের এখন এই মত পেতে পারেন:

Href জন্য:

$(function(){
  $('div.res a').click(function(){
    alert($(this).attr('href'));
    // or alert($(this).hash();
  });
});

পাঠ্যের জন্য:

$(function(){
  $('div.res a').click(function(){
    alert($(this).text());
  });
});

1
অন্য উপাদানটিতে শ্রেণীর নামের লিঙ্ক থাকলে এটি ভঙ্গ হবে। ট্যাগ সিলেক্টর নির্দিষ্ট করা আরও ভাল।
রাহুল

@ রহুল: এটি মজার, এটি হবে না, linkক্লাসটি নির্দিষ্ট যে লিঙ্কগুলি থেকে তিনি তথ্য পেতে চান তার জন্য থাকার কথা।
সরফরাজ

তবে নিম্নলিখিত মার্কআপটি যদি হয় তবে কী হবে<div class='link' />
রাহুল

@ রহুল: এটি আবার মজার হয়ে উঠছে, তিনি তার লিঙ্কগুলিকে কোনও অনন্য নাম দিতে পারেন।
সরফরাজ

আপনি যদি এর পরিবর্তে $ এর this.hash (এই) .attr ( 'সূরা') ব্যবহার করতে পারে
Meo

6

প্রশ্নের আপডেট প্রতিফলিত করতে সম্পাদিত

$(document).ready(function() {
    $(".res a").click(function() {
        alert($(this).attr("href"));
    });
});

এটি সমস্ত লিঙ্কগুলিকে এমনকি তার আগ্রহী নাও হতে পারে
সরফরাজ

4

JQuery ছাড়া:

খাঁটি জাভাস্ক্রিপ্ট ব্যবহার করে এটি করা এত সহজ যখন আপনার jQuery প্রয়োজন হয় না। এখানে দুটি বিকল্প রয়েছে:

  • পদ্ধতি 1 - গুণটির সঠিক মানটি পুনরুদ্ধার করুন href:

    উপাদানটি নির্বাচন করুন এবং তারপরে .getAttribute()পদ্ধতিটি ব্যবহার করুন ।

    এই পদ্ধতিটি সম্পূর্ণ ইউআরএল ফিরিয়ে দেয় না , পরিবর্তে এটি গুণকের সঠিক মানটি পুনরুদ্ধার করে href

    var anchor = document.querySelector('a'),
        url = anchor.getAttribute('href');
    
    alert(url);
    <a href="/relative/path.html"></a>


  • পদ্ধতি 2 - সম্পূর্ণ ইউআরএল পাথ পুনরুদ্ধার করুন:

    উপাদানটি নির্বাচন করুন এবং তারপরে কেবল hrefসম্পত্তিটি অ্যাক্সেস করুন ।

    এই পদ্ধতিটি সম্পূর্ণ ইউআরএল পাথ দেয়।

    এই ক্ষেত্রে: http://stacksnippets.net/relative/path.html

    var anchor = document.querySelector('a'),
        url = anchor.href;
    
    alert(url);
    <a href="/relative/path.html"></a>


আপনার শিরোনাম থেকে বোঝা যায়, আপনি hrefক্লিক ক্লিক করে মান পেতে চান । কেবল একটি উপাদান নির্বাচন করুন, ক্লিক ইভেন্ট শ্রোতা যুক্ত করুন এবং তারপরে hrefউল্লিখিত পদ্ধতিগুলির মধ্যে দুটি ব্যবহার করে মানটি ফিরিয়ে দিন ।

var anchor = document.querySelector('a'),
    button = document.getElementById('getURL'),
    url = anchor.href;

button.addEventListener('click', function (e) {
  alert(url);
});
<button id="getURL">Click me!</button>
<a href="/relative/path.html"></a>


0

আপডেট হওয়া কোড

$('a','div.res').click(function(){
  var currentAnchor = $(this);
  alert(currentAnchor.text());
  alert(currentAnchor.attr('href'));
});

এটি সমস্ত লিঙ্কগুলি এমনকি তার আগ্রহী নাও হতে পারে
সরফরাজ

তবে এটি তার মার্কআপ অনুসারে যা তিনি কোনও শ্রেণীর নাম নির্দিষ্ট করেন নি।
রাহুল

উন্নতি সম্ভব যেখানে তাকে গাইড করা উচিত :)
সরফরাজ

নিম্ন ভোটের সম্ভাব্য কারণ হতে পারে যে প্রশ্নকারী আপনার সাথে কী করেছে তা সন্ধান করছে না$('a','div.res')
সরফরাজ

0

বিকল্প

উপরের সরফরাজের উদাহরণ ব্যবহার করে।

<div class="res">
    <a class="info_link" href="~/Resumes/Resumes1271354404687.docx">
        ~/Resumes/Resumes1271354404687.docx
    </a>
</div>

Href জন্য:

$(function(){
  $('.res').on('click', '.info_link', function(){
    alert($(this)[0].href);
  });
});
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.