2016-07-01 5 views
0

Я просто пытаюсь изменить значение HREFИзменение HREF атрибута ссылку на клик

$("div").click(function() { 
 
    $("a#link1").attr("href").val("www.bing.de"); 
 
});
div { 
 
    border: 1px solid black; 
 
    cursor: pointer; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a id="link1" href="www.google.de">LINK</a> 
 
<div>Click here</div>

Но это бросает ошибку Uncaught TypeError: $(...).attr(...).val is not a function, и я не знаю, почему? Насколько я знаю val Является функцией.

+0

В случаях, как это всегда лучше, чтобы прочитать документы: http://api.jquery.com/attr –

ответ

2

Попробуйте это.

Вы не можете изменить атрибут с помощью метода val(). val() используется только для ввода значения.

Вы можете использовать attr("aatribute_name",value); или prop("attribute_name","value");

$("div").click(function() { 
 
    $("a#link1").attr("href","www.bing.de"); 
 
});
div { 
 
    border: 1px solid black; 
 
    cursor: pointer; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a id="link1" href="www.google.de">LINK</a> 
 
<div>Click here</div>

2

Вы можете использовать attr или prop

$("a#link1").prop("href","www.bing.de") 

Это значение атрибута, который вы хотите, чтобы не val изменить. val в основном используется, чтобы получить значение и некоторое время установить значение, но не атрибут.

+0

Почему это не работает с моим кодом? – Black

+0

@EdwardBlack Поскольку вы пытаетесь использовать метод jq 'val()' для строки –

0

.val() используется для входов, выбирает и прокручиваемым. Его следует называть вот так:

$("div").click(function() { 
    $("a#link1").attr('href','www.bing.de'); 
}); 
1

Попробуйте следующий фрагмент.

Проблема здесь: $("a#link1").attr("href").val("www.bing.de");

$("div").click(function(){ 
 
\t $("a#link1").attr("href","www.bing.de"); 
 
});
div { 
 
    border: 1px solid black; 
 
\t cursor:pointer; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a id="link1" href="www.google.de">LINK</a> 
 
<div>Click here</div>

0

Почему это не работает, потому что вы пытаетесь присвоить значение anchor tag. val() не присваивает значение anchor tag. Для этого вам нужно использовать метод, как показано ниже.

Не это: -

$("div").click(function() { 
    $("a#link1").attr("href").val("www.bing.de"); 
}); 

Это один -

$("div").click(function() { 
     $("a#link1").attr("href","www.bing.de"); 
    }); 
1

реализация Javascript с использованием setAttribute():

document.querySelector("a#link1").setAttribute("href", "www.bing.de"); 
//or 
document.querySelector("a#link1").href = "www.bing.de"; 

Надеется, что это помогает.

1

Присвоить с HREF также работает

$("div").click(function() { 
    $("a#link1")[0].href = "www.bing.de"; 
});  
+0

Почему '[0]' хотя? – Black

+1

Я пробовал с javascript стандартом, поэтому нужно индексировать! Пример, если есть две ссылки 'a href', индекс будет 0 и 1. –