Создание ссылок для элементов с определенным классом с помощью jQuery - PullRequest
0 голосов
/ 24 августа 2009

Как можно обернуть каждый элемент, принадлежащий определенному классу, ссылкой, которая построена из текста внутри div? Я имею в виду, что я хотел бы включить:

<foo class="my-class>sometext</foo>

в

<a href="path/sometext" ><foo class="my-class>sometext</foo></a>

Символы Url-кодировки тоже подойдут, но при необходимости их можно проигнорировать.

РЕДАКТИРОВАТЬ : просто уточнить, путь зависит от текста в элементе

Ответы [ 5 ]

2 голосов
/ 24 августа 2009
$(".my-class").each(function(){
  var thisText = $(this).text();
  $(this).wrap("<a></a>").attr("href","path/"+thisText);
});
2 голосов
/ 24 августа 2009

Используйте jQuery.wrap() для простого случая:

$(".my-class").wrap("<a href='path/sometext'></a>");

Для обработки текста внутри:

$(".my-class").each(function() {
  var txt = $(this).text();
  var link = $("<a></a>").attr("href", "path/" + txt);
  $(this).wrap(link[0]);
});
1 голос
/ 24 августа 2009

вы можете обернуть их внутри элемента привязки следующим образом:

$(document).ready(function(){
    $(".my-class").each(function(){
           var hr="path/"+$(this).text();
           $(this).wrap("<a href='"+hr+"'></a>");
   });
});

если вы открываете ссылки на той же самой странице, то проще, чем модифицировать dom, чтобы обернуть элементы внутри якоря, - определить css для элементов, чтобы они выглядели как ссылки, а затем обработать событие click:

$(".my-class").click(function(){
     window.location.href="path/"+$(this).text();
});
0 голосов
/ 24 августа 2009
$("foo.my-class").each(function(){
  var foo = $(this);
  foo.wrap("<a href='path/" + foo.Text() +"'>");
});
0 голосов
/ 24 августа 2009

Это должно сделать это:

$('foo.my-class').each(function() {
  var element = $(this);
  var text = element.html(); // or .text() or .val()
  element.wrap('<a href="path/' + text + '"></a>');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...