कैसे अद्यतन करने के लिए (append) jQuery में एक href?


79

मेरे पास उन लिंक्स की एक सूची है जो सभी एक गूगल मैप्स एपी पर जाते हैं।

लिंक daddrमें स्थैतिक के रूप में पहले से ही (गंतव्य) पैरामीटर है। मैं उपयोगकर्ताओं की स्थिति का पता लगाने के लिए जियो-लोकेशन का उपयोग कर रहा हूं और मैं saddrडेटा प्राप्त करने के बाद (स्रोत पते) को लिंक में जोड़ना चाहता हूं।

इसलिए मूल रूप से मुझे &saddr=50.1234567,-50.03452Google मानचित्र की ओर इशारा करते हुए सभी लिंक के अंत में कुछ जोड़ना होगा

सभी लिंक्स में एक कक्षा होती है, जिसे बुलाया जाता है directions-link

और इस पृष्ठ से मुझे पता चला है कि उन्हें कैसे बदलना है:

$("a.directions-link").attr("href", "http://www.google.com/");

हालाँकि मैं केवल href के अंत में अपने मान को जोड़ना चाहता हूँ बिना यह बदले कि href क्या है।

मैं उसे कैसे कर सकता हूँ?

जवाबों:


149
var _href = $("a.directions-link").attr("href");
$("a.directions-link").attr("href", _href + '&saddr=50.1234567,-50.03452');

के साथ पाश करने के लिए each()

$("a.directions-link").each(function() {
   var $this = $(this);       
   var _href = $this.attr("href"); 
   $this.attr("href", _href + '&saddr=50.1234567,-50.03452');
});

धन्यवाद, क्या यह काम होगा अगर 1 से अधिक निर्देश-लिंक सभी अलग-अलग hrefs के साथ हो? धन्यवाद!
जद इसाक्स

यदि आप प्रत्येक उदाहरण के लिए एक ही चीज़ जोड़ रहे हैं a.directions-linkतो हाँ। अन्यथा, यदि आप प्रत्येक href पर एक अलग मान each()जोड़ रहे हैं, तो आपको एक से पुनरावृति का उपयोग करना होगा और संबंधित मूल्य को जोड़ना होगा।
गाबे

मैं उसी मूल्य को जोड़ रहा हूं, लेकिन प्रत्येक href को शुरू करने के लिए अलग है। इसलिए अगर पहला one.html है और दूसरा दो.html है, तो वे दोनों एक ही पृष्ठ का उपयोग कर रहे हैं। इसलिए मुझे लगता है कि मुझे प्रत्येक का उपयोग करने की आवश्यकता है ()। क्या आप उस के उपयोग पर ध्यान रखने की परवाह करते हैं? धन्यवाद!!
जद इसाक्स

हाँ, पाश मुझे क्या चाहिए, धन्यवाद! :)
JD आइजैक

41

jQuery 1.4 में ऐसा करने के लिए एक नई सुविधा है, और यह नियम है। मैं भूल गया कि इसे क्या कहा जाता है, लेकिन आप इसे इस तरह उपयोग करते हैं:

$("a.directions-link").attr("href", function(i, href) {
  return href + '?q=testing';
});

यह भी सभी तत्वों पर छोरों, तो $ .each के लिए कोई ज़रूरत नहीं है


4
यह मेरे लिए काम नहीं किया, लेकिन .attr('href', function(i) { return $(this).attr('href') + '?q=testing'; })किया।
एल्बर्ट उर्फ

3
@ अल्बर्टफ यह मेरे लिए काम करता है। क्या आप jquery> = 1.4 का उपयोग कर रहे हैं? और क्या आपने दूसरे तर्क के रूप में href चर को शामिल किया है?
ज़ीउस

$ ("# कैलकुलेटर")। Attr ("href", फंक्शन (i, href) {रिटर्न href + '; ves =' + 23 + '& v =' + 'sdfds;}); काम नहीं
des1roer

Jsfiddle.net/qz9eLr2z पर यह परीक्षण , यह काम करता है। api.jquery.com/attr/#attr-attributeName-function का कहना है कि इसे jQuery 1.1 में जोड़ा गया था।
जैकब सी।

1
@ जैकोब। एक समारोह में लेने की अनुमति देते हुए 1.1 में जोड़ा गया था, लेकिन वर्तमान मान को पारित करने के लिए दूसरा पैराम 1.4 में जोड़ा गया था। यहाँ इसका एक उदाहरण है jquery में काम न करना 1.3 jsfiddle.net/qz9eLr2z/1
zaius


-1

यहाँ वह है जो मैंने url में पैरामीटर जोड़ने के लिए करने की कोशिश की है जिसमें url में विशिष्ट वर्ण है।

jQuery('a[href*="google.com"]').attr('href', function(i,href) {
        //jquery date addition
        var requiredDate = new Date();
        var numberOfDaysToAdd = 60;
        requiredDate.setDate(requiredDate.getDate() + numberOfDaysToAdd); 
        //var convertedDate  = requiredDate.format('d-M-Y');
        //var newDate = datepicker.formatDate('yy/mm/dd', requiredDate );
        //console.log(requiredDate);

        var month   = requiredDate.getMonth()+1;
        var day     = requiredDate.getDate();

        var output = requiredDate.getFullYear() + '/' + ((''+month).length<2 ? '0' : '') + month + '/' + ((''+day).length<2 ? '0' : '') + day;
        //

कार्य उदाहरण क्लिक करें


1
इस पोस्ट का उद्देश्य क्या है? यह एक सवाल है या एक जवाब है? या सिर्फ एक अजीब टिप्पणी? यदि यह बाद में है, तो आप गलत स्थान पर पोस्ट कर रहे हैं। ;-)
फिलिप हीली

मैंने jsfiddle में डेमो नमूना बनाया है, लेकिन लिंक गलत था। अब यह सही url की ओर इशारा करता है।
बिक्रम श्रेष्ठ

आपके 'उत्तर' का कोई मतलब नहीं है, यह वास्तव में एक विचित्र बयान से अधिक है।
Phill Healey
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.