2015-06-01 2 views
0

Добрый день, каждый. Возникли проблемы с реализацией одной ситуации. У меня есть некоторые ссылки, пусть говорят 5 (но это может быть больше). Каждая ссылка имеет id = "# link", но у меня также есть 5 разных переменных. Так что мне нужно, как получить одну из этих переменных в jquery в зависимости от ссылки, на которую будет нажимать. Как я могу это понять?получить значение по ссылке

<?php 
$a=1; 
$b=2; 
$c=3; 
$d=4; 
$e=5; 
printf ("<a href=\"\" id=\"#link\">link_a</a>"); 
printf ("<a href=\"\" id=\"#link\">link_b</a>"); 
printf ("<a href=\"\" id=\"#link\">link_c</a>"); 
printf ("<a href=\"\" id=\"#link\">link_d</a>"); 
printf ("<a href=\"\" id=\"#link\">link_e</a>"); 
?> 

Так вот 5 переменных - а, б в г е и 5 ссылок, так что мне нужно одну из Получать, что переменные в зависимости от щелкнули звена;

$(document).on('click','#link',function() { 

alert(result); 
return false; 
}); 

P.S. Число переменных и ссылок может быть больше 5. Это может быть 10 или 20. Но я беру 5 для примера. Спасибо за вашу помощь.

+6

Вы не можете назначить один и тот же идентификатор нескольким ссылкам для достижения такой функциональности использовать 'class' –

+0

Я использую вашу идею и делаю для них class =" link "и сделал их id = variable, затем я использую in juery - var result = this.id; и что это. Спасибо, что ваш коммант был полезен –

+0

Рад, что это вам поможет. Публикация его в качестве ответа @alex_mike –

ответ

1

У вас есть необходимость хранить данные в элементах привязки (HTML).

Data attributes - это путь.

PHP код:

<?php 
$a=1; 
$b=2; 
$c=3; 
$d=4; 
$e=5; 
printf ("<a href=\"\" class=\"mylink\" id=\"#link\" data-variable=\"$a\">link_a</a>"); 
printf ("<a href=\"\" class=\"mylink\" id=\"#link\" data-variable=\"$b\">link_b</a>"); 
printf ("<a href=\"\" class=\"mylink\" id=\"#link\" data-variable=\"$c\">link_c</a>"); 
printf ("<a href=\"\" class=\"mylink\" id=\"#link\" data-variable=\"$d\">link_d</a>"); 
printf ("<a href=\"\" class=\"mylink\" id=\"#link\" data-variable=\"$e\">link_e</a>"); 
?> 

идентификаторы в пределах документа HTML, должны быть уникальными. Используйте классы, если у вас есть необходимость в избыточных идентификаторах.

Javascript Код:

$(document).on('click','a.mylink',function() { 
    //Use .attr() to get the data attribute. 
    alert($(this).attr('data-variable')); 
    return false; 
}); 
+0

Я использую что-то похожее на это, я его решаю (читайте комментарии после публикации), Но спасибо за вашу помощь –

+0

Я очень не рекомендую использовать 'id' для хранения данных. Используйте атрибуты данных, поскольку они семантически корректны. – Mysteryos

0

попробовать

$(document).on('click','#link',function() { 
    alert($(this).attr('id')); 
}); 
+3

Прежде чем писать ответ, вы должны попробовать. – panther

1

Модификация вас код

<script> 
 
    function get(){ 
 
    var m=$(this).val(); 
 
    alert(m); 
 
    } 
 
</script>
<?php 
 
$a=1; 
 
$b=2; 
 
$c=3; 
 
$d=4; 
 
$e=5; 
 
echo "<a href='' onclick=get() value=".$a." >link_a</a>"; 
 
echo "<a href='' onclick=get() value=".$b." >link_b</a>"; 
 
echo "<a href='' onclick=get() value=".$c." >link_c</a>"; 
 
echo "<a href='' onclick=get() value=".$d." >link_d</a>"; 
 
echo "<a href='' onclick=get() value=".$e." >link_e</a>"; 
 
?>

Он будет работать нормально в соответствии с вашими требованиями.

+0

Ссылка не имеет атрибута 'значение'. – panther

+0

Я попытался сделать это со значением, но я не могу получить результат, BUt из-за коментария после моего сообщения. Я понимаю, что это очень просто, просто используя идентификатор, когда вы используете значение. и просто var result = this.id; Но спасибо за ваш ответ –

1

Использование class вместо ID (или использовать только a элемент) и положить PHP переменные в любой данных атрибуте.

<?php 
$a=1; 
$b=2; 
$c=3; 
$d=4; 
$e=5; 
printf ("<a href='' class='link' data-value='" . $a ."'>link_a</a>"); 
printf ("<a href='' class='link' data-value='" . $b ."'>link_a</a>"); 
printf ("<a href='' class='link' data-value='" . $c ."'>link_a</a>"); 
printf ("<a href='' class='link' data-value='" . $d ."'>link_a</a>"); 
printf ("<a href='' class='link' data-value='" . $e ."'>link_a</a>"); 
?> 

<script> 

var a = document.getElementsByTagName('a'); 
a.onclick = function() { 
    alert(this.getAttribute('data-value')); 
    return false; 
} 

</script> 
1

Вы не можете назначить же id нескольким ссылкам, чтобы достичь такой функциональности вам нужно использовать class его потому, что идентификаторы были должны быть уникальными

<?php 
$a=1; 
$b=2; 
$c=3; 
$d=4; 
$e=5; 
printf ("<a href=\"\" class=\"link\" data-id=\"$a\">link_a</a>"); 
printf ("<a href=\"\" class=\"link\" data-id=\"$b\">link_b</a>"); 
printf ("<a href=\"\" class=\"link\" data-id=\"$c\">link_c</a>"); 
printf ("<a href=\"\" class=\"link\" data-id=\"$d\">link_d</a>"); 
printf ("<a href=\"\" class=\"link\" data-id=\"$e\">link_e</a>"); 
?> 

JS

$(document).on('click','a.mylink',function() { 
    alert($(this).attr('data-id')); 
//or you can directly use it as 
    alert($(this).data('id')); 
    return false; 
}); 
Смежные вопросы