Получение значения href из тега
У меня ниже html:
<div class="threeimages" id="txtCss">
<a>
<img alt="Australia" src="/Images/Services%20button_tcm7-9688.gif"/>
</a>
<div class="text" id="txtLink">
<h2>
<a href="#" onclick="location.href='https://stackoverflow.com/partnerzone/downloadarea/school-information/australia/index.aspx'; return false;">Australia</a>
</h2>
<p>Land of the sunshine!</p>
</div>
</div>
Теперь, если вы видите, что в div ID "txtLink" есть href. Australia
Я хочу, чтобы это во время выполнения страницы те же самые значения href копировались в вышеуказанный тег div ID "txtCss", я имею в виду, когда моя страница будет отображаться, мой html будет выглядеть следующим образом:
<div class="threeimages" id="txtCss">
<a href="#" onclick="location.href='https://stackoverflow.com/partnerzone/downloadarea/school-information/australia/index.aspx'; return false;">
<img alt="Australia" src="/Images/Services%20button_tcm7-9688.gif"/>
</a>
<div class="text" id="txtLink">
<h2>
<a href="#" onclick="location.href='https://stackoverflow.com/partnerzone/downloadarea/school-information/australia/index.aspx'; return false;">Australia</a>
</h2>
<p>Land of the sunshine!</p>
</div>
</div>
предложите некоторый код для вышеуказанной проблемы
Ответы
Ответ 1
Обновление
Ответ без jquery здесь: fooobar.com/questions/508152/...
Еще в 2009 году было вполне приемлемо использовать jquery:)
Создайте js файл с чем-то вроде этого:
$(document).ready(function() {
$('.threeimages').each(function(){
$(this).DupeHref();
});
});
jQuery.fn.DupeHref = function(){
var target = $(this).find(".text h2 a").attr("href");
$(this).find("a").attr("href", target);
}
Укажите как jquery, так и этот файл javascript в вашем html.
Что-то вроде этого:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
</head>
<body>
<div class="threeimages">
<a>
<img alt="Australia" src="/Images/Services%20button_tcm7-9688.gif"/>
</a>
<div class="text">
<h2>
<a href="/partnerzone/downloadarea/school-information/australia/index.aspx">Australia</a>
</h2>
<p>Land of the sunshine!</p>
</div>
</div>
<div class="threeimages">
<a>
<img alt="Belgium" src="/Images/Services%20button_tcm7-9689.gif"/>
</a>
<div class="text">
<h2>
<a href="/partnerzone/downloadarea/school-information/belgium/index.aspx">Belgium</a>
</h2>
<p>Land of beer and food!</p>
</div>
</div>
<script src="./content/js/jquery-1.2.6.min.js" type="text/javascript"></script>
<script src="./content/js/dupetargets.js" type="text/javascript"></script>
</body>
</html>
Ответ 2
это самый короткий ответ без использования какой-либо библиотеки и работает только с тем, что вы хотите
var tc = document.getElementById("txtCss");
var ary = tc ? tc.getElementsByTagName("a") : [];
if(ary.length >= 2)
ary[0].href = ary[1].href;
Ответ 3
Это простой понятный код:
<html>
<head>
<script language="javascript">
function simpleChangeURL(){
var anchors = document.getElementsByTagName('a');
if(anchors != null & anchors.length > 0){
anchors[0].href = anchors[1].href;
}
}
function simpleChangeByAustraliaURL()
{
var anchors = document.getElementsByTagName('a');
var images = document.getElementsByTagName('img');
var imageNeeded;
var anchorNeeded;
if(images != null){
for( var i = 0; i < images.length ; i++){
if (images[i].alt == 'Australia') imageNeeded = images[i];
}
}
if(anchors != null){
for( var j = 0; j < anchors.length ; j++){
if (anchors[j].firstChild.data == 'Australia') anchorNeeded = anchors[j];
}
}
if(imageNeeded != null && anchorNeeded!= null){
var imageAnchor = imageNeeded.parentNode;
imageAnchor.href = anchorNeeded;
}
}
</script>
</head>
<body>
<div class="threeimages" id="txtCss">
<a>
<img alt="Australia" src="/Images/Services%20button_tcm7-9688.gif"/>
</a>
<div class="text" id="txtLink" >
<h2>
<a href="/partnerzone/downloadarea/school-information/australia/index.aspx">Australia</a>
</h2>
<p>Land of the sunshine!</p>
</div>
</div>
<script> simpleChangeByAustraliaURL();</script>
</body>
</html>
Ответ 4
Вы можете использовать:
var txtLink = document.getElementById('txtLink');
var a = txtLink.getElementsByTagName('a');
if (a != null && a.length > 0) {
var setLink = txtLink.parentNode.getElementsByTagName('a');
if (setLink != null && setLink.length > 0) {
setLink[0].href = a[0].href;
}
}
Я думаю, что это должно сработать.