আমি কীভাবে জাভাস্ক্রিপ্ট ব্যবহার করে কোনও লিঙ্কটিতে "href" বৈশিষ্ট্য যুক্ত করতে পারি?


95

আমি কীভাবে hrefজাভাস্ক্রিপ্ট ব্যবহার করে কোনও লিঙ্কে গুন যুক্ত করতে পারি ?

আমি মূলত hrefগতিশীলর সাথে একটি বৈশিষ্ট্য যুক্ত করতে চাই <a></a>(অর্থাত্ ব্যবহারকারী যখন ওয়েবসাইটে নির্দিষ্ট চিত্রটিতে ক্লিক করেন)।

সুতরাং থেকে:

<a>Link</a>

আমাকে যেতে হবে:

<a href="somelink url">Link</a>

উত্তর:


166
var a = document.getElementById('yourlinkId'); //or grab it by tagname etc
a.href = "somelink url"

মজাদার. আমি জানতাম না যে আপনি সরাসরি ক্ষেত্র হিসাবে গুণাবলী অ্যাক্সেস করতে পারবেন (নীচে আমার সমাধানটির সাথে তুলনা করুন, ব্যবহার করে setAttribute)। এই পদ্ধতির স্ট্যান্ডার্ড কিনা কেউ কি জানেন?
mgiuca

আমি মনে করি একটি ডিওএম উপাদান href এর উপর এমন একটি বৈশিষ্ট্য যা আপনি সরাসরি এল.ডি.আরএফ দ্বারা সেট করতে পারেন। পরিবর্তে, সেটঅ্যাট্রিবিউট (এল, অ্যাটর) একটি নির্দিষ্ট ডিওএম উপাদানটিতে কিছু কাস্টম বৈশিষ্ট্য যুক্ত করতে ব্যবহৃত হয়, সুতরাং এই ক্ষেত্রে এটি একটি এসটিডি সেট করার জন্য ব্যবহার করার দরকার নেই। attr
stecb

তবে দুটি উপায়ই কি সঠিক ? উত্তরের সমালোচনা করার চেষ্টা করছেন না - এটি ভাল হতে পারে। তবে ওয়েবে, এমন কিছু পাওয়ার পক্ষে পর্যাপ্ত নয় যা আপনার পক্ষে কাজ করে। এটিতে সমস্ত ব্রাউজারে কাজ করা দরকার এবং এর অর্থ আপনার মানগুলি অনুসরণ করা দরকার। এফডাব্লুআইডাব্লু, এটি আমার জন্যও (ফায়ারফক্সে) কাজ করে তবে আমি এটি জানতে আগ্রহী যে এটি আসলে এটি করার কোনও মানক উপায় নয় কিনা। ডাব্লু 3 সি ডোম স্পেসিফিকেশন ( w3.org/TR/DOM- লেভেল ২-- কোর / कोर html ) এটি উল্লেখ করেছে বলে মনে হয় না।
mgiuca

6
উপাদানগুলির সাথে আরও সহজে যোগাযোগ করার জন্য এগুলি ইন্টারফেস। উদাহরণস্বরূপ, সমস্ত লিঙ্কগুলির মধ্যে এমন পদ্ধতিগুলি সংজ্ঞায়িত করা হয় HTMLLinkElementযা নির্দিষ্ট ক্ষেত্রগুলি যেমন সেট করা সমর্থন করে href। আপনি কোনটি ছাড়াই ব্যবহার করতে পারেন তা দেখতে আপনাকে রেফারেন্সটি দেখতে হবে setAttribute। আরেকটি উদাহরণ হ'ল <table>উপাদান ( এইচটিএমএল টেবিলমেন্ট ) যেখানে আপনি insertRow()তৈরি না করে <tr>এবং সারণিতে এটি যুক্ত করেই নতুন সারি সন্নিবেশ করানোর জন্য ব্যবহার করতে পারেন ।
থাই

4
@mgiuca: এইচটিএমএল DOMs জন্য সাধারণভাবে, তোমার চেয়ে বরং বৈশিষ্ট্য ব্যবহার করা উচিৎ setAttribute()এবং getAttribute(), অর্থাৎ ভাঙা হয় এবং সবসময় কি আপনি আশা করতে পারে না পারে। দেখুন stackoverflow.com/questions/4456231/...
টিম নিচে

25

আমি ধরে নিয়েছি আপনি কীভাবে <a>এলিমেন্টের জন্য DOM অবজেক্ট পাবেন (ব্যবহার document.getElementByIdবা অন্য কোনও পদ্ধতি) know

কোনও বৈশিষ্ট্য যুক্ত করতে, কেবল ডিওএম অবজেক্টে সেটএট্রিবিউট পদ্ধতিটি ব্যবহার করুন :

a = document.getElementById(...);
a.setAttribute("href", "somelink url");

পাল, সেটট্রিবিউট বৈশিষ্ট্যগুলি সংশোধন করার জন্য বেশ অ-মানক। বর্তমান মানগুলিতে অ্যাক্সেস বা সংশোধন করতে আপনার বৈশিষ্ট্যগুলি ব্যবহার করা উচিত। উদাহরণস্বরূপ, elt.setAttribute ('মান', ভাল) এর পরিবর্তে elt.value ব্যবহার করুন। developer.mozilla.org/en/DOM/element.setAttribute#
নোট

@ নবীন এটি "সর্বাধিক উল্লেখযোগ্যভাবে এক্সএইউএল ইন" বলেছেন, যা সম্ভবত এটি নয়। আমি নিশ্চিত নই যে এটি অন্যান্য মানগুলি ("নির্দিষ্ট বৈশিষ্ট্যগুলি" খুব অস্পষ্ট) setAttributeউল্লেখ করে তবে এটি স্পষ্টভাবে মানক ( w3.org/TR/DOM-Level-2-Core/core.html#ID-F68F082 ), এবং ডাব্লু 3 সি এমন কোনও বৈশিষ্ট্য নির্ধারণ করে না যা এর জন্য কাজ করে না। বিপরীতে, আমি গ্যারান্টি দিতে পারি যে সম্পত্তিটি নির্দিষ্ট বৈশিষ্ট্য নামের জন্য ব্যর্থ হবে। যেমন tagName, এবং setAttribute- সেগুলি ইতিমধ্যে এলিমেন্ট ইন্টারফেসের ক্ষেত্র / পদ্ধতি। আমি ডাব্লু 3 সি নথিতে কোথাও দেখতে পাচ্ছি না যা বৈশিষ্ট্যের জন্য বৈশিষ্ট্যগুলি উল্লেখ করে।
mgiuca

@ এমজিউকা: দেখে মনে হচ্ছে আপনি শেষ মন্তব্যটি পোস্ট করার পরে প্রাসঙ্গিক ধারণাটি পেয়েছেন। সম্পত্তি ব্যর্থ হওয়া এবং তারপরে উল্লেখ করা সম্পর্কে আপনার বক্তব্য আমি বুঝতে পারি না tagName। আপনি কাস্টম বৈশিষ্ট্য সম্পর্কে কথা বলছেন?
টিম ডাউন

আমি বোঝাতে চাইছি যে ডম (এমনকি ব্রাউজারে প্রয়োগ করা) কেবলমাত্র এইচটিএমএল নয়, সাধারণভাবে এক্সএমএল গাছের সাথে কাজ করার জন্য একটি জেনেরিক বৈশিষ্ট। স্বেচ্ছাসেবী এক্সএমএল উপাদানগুলির সাথে কাজ করার সময়, নির্ভরযোগ্যতার সাথে নির্ভরযোগ্যতা পেতে এবং সেট করার একমাত্র উপায় হ'ল getAttributeএবং setAttribute; "tagName"সম্পত্তি হিসাবে কাজ করতে পারে না এমন একটি বৈশিষ্ট্যের উদাহরণ। এইচটিএমএল নিয়ে কাজ করার সময় এবং ডিওএম এইচটিএমএল স্পেসে সংজ্ঞায়িত নির্দিষ্ট বৈশিষ্ট্যের জন্য, আপনি বৈশিষ্ট্যগুলি পড়তে ও নির্ধারণ করতে বৈশিষ্ট্যগুলি ব্যবহার করতে পারেন।
mgiuca

আমি সম্ভবত ভুল বোঝাবুঝি করছি, তবে এটি এখনও বিভ্রান্তিকর। tagName হয় একটি সম্পত্তি Elementজাভাস্ক্রিপ্ট বস্তু, উভয় HTML এবং এক্সএমএল DOMs, এবং তুমি কি মাধ্যমে একটি উপাদান এর ট্যাগ নাম পেতে পারেন getAttribute("tagName")(অর্থাত, কার বাস্তবায়ন ছাড়া getAttribute()এবং setAttribute(), যা অবিকল কি বলছে তা বিপরীত বলে মনে হয় নষ্ট হয়ে গেছে)।
টিম ডাউন

3

প্রথমে পরিবর্তন <a>Link</a>করার চেষ্টা করুন <span id=test><a>Link</a></span>

তারপরে, জাভাস্ক্রিপ্ট ফাংশনে এমন কিছু যুক্ত করুন যা আপনি কল করছেন:

var abc = 'somelink';
document.getElementById('test').innerHTML = '<a href="' + abc + '">Link</a>';

লিঙ্কটি এইভাবে দেখবে:

<a href="somelink">Link</a>

ওহে. স্ট্যাকওভারফ্লোতে আপনাকে স্বাগতম। ওপির প্রশ্নটি মনে হয় hrefকোনও বিদ্যমান a ট্যাগটিতে কীভাবে যুক্ত করা যায় ( আমি মূলত <a> </a> এ একটি href বৈশিষ্ট্য যুক্ত করতে চাই )) যাইহোক, এই উত্তরটি কীভাবে একটি ট্যাগ তৈরি করতে হবে তা ব্যাখ্যা করছে বলে মনে হচ্ছে । ahref
মোয়েশ লিপস্কার

1
document.getElementById('link-id').href = "new-href";

আমি জানি এটি একটি পুরানো পোস্ট, তবে এখানে একটি ওয়ান-লাইনার রয়েছে যা কিছু লোকের পক্ষে আরও উপযুক্ত হতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.