|
Страници по тази тема: 1 | 2 | (покажи всички)
Тема
|
как да сложа таг около друг таг с javascript ?
|
|
Автор |
Гpиrop-ът (новак) |
Публикувано | 01.03.11 21:36 |
|
Привет,
искам чрез скрипт да сложа <div id='d1'></div> около всеки таг <img.....>
Т.е. желаният краен резултат е
<div id='d1'>
<img....>
</div>
Пробвах с insertAdjacentHTML да сложа <div id='d1'> beforeBegin и </div> afterEnd, но резултата е странен - получава се
<div id='d1'></div>
<img....>
<div id='d1'></div>
т.е. вместо да затвори <имг..> в <див>, ми слага празен таг отпред и отзад.
Надявам се че го обясних, има ли как да стане?
10х
| |
Тема
|
Re: как да сложа таг около друг таг с javascript ?
[re: Гpиrop-ът]
|
|
Автор |
croesus (хлевоуст) |
Публикувано | 01.03.11 22:54 |
|
Най-лесно е с jQuery. В него има такава фуннкция - "wrap ()". На български - "увиване".
| |
Тема
|
Re: как да сложа таг около друг таг с javascript ?
[re: croesus]
|
|
Автор |
Гpиrop-ът (новак) |
Публикувано | 02.03.11 13:43 |
|
благодаря. Това сигурно ще стане, ако няма друг вариант ще го използвам.
Но все пак не ми се иска да прикачам четвърт мегабайт скрипт само заради това. Някакъв друг начин?
| |
Тема
|
Re: как да сложа таг около друг таг с javascript ?
[re: Гpиrop-ът]
|
|
Автор |
croesus (хлевоуст) |
Публикувано | 02.03.11 15:41 |
|
Четвърт мегабайт? wrap() важи и за jQuery 1.0, което е 9 кВ.
| |
|
Еми пише, че първият аргумент на функцията insertAdjacentHTML посочва дали кодът да се постави преди, или след обекта. Направи скрипта така, че първо да минава кода и да поставя <div class="MyDiv"> отпред (задаваш "beforeBegin"), и после пак извикваш insertAdjacentHTML, обаче като първи аргумент задаваш "afterEnd" и му указваш да постави </div>
------------------------------------------
| |
|
на теория е така, но на практика е различно. Ако опиташ да вкараш <div class="MyDiv"> beforeBegin, браузъра вкарва автоматично и затварящия таг, т.е. резултата е
<div class="MyDiv"></div><img ...>
Ако опиташ да вкараш само затварящ таг, независимо къде, не става нищо.
Изглежда кода който добавяш трябва да е валиден в момента на вмъкване и затова не можеш да вмъкнеш таг на части.
@croesus: jQuery 1.0 е 45+ КБ. Сигурно ако махнеш коментари, бланкс и т.н. става 9. Ако не намеря друг начин сигурно ще го разчопля да видя мога ли да измъкна каквото ми трябва. Не искам да използвам версия от преди години, кой знае колко бози има вътре.
| |
Тема
|
Re: как да сложа таг около друг таг с javascript ?
[re: Гpиrop-ът]
|
|
Автор |
Бokop (Христо) |
Публикувано | 21.03.11 23:31 |
|
Доста време е минало и най-вероятно си се оправил. Ето ти едно кратко примерче, което прави точно това, което искаш. Тествано под Мозила и IE.
<html>
<head>
<script type="text/javascript">
function _wrapDivAroundImage(string)
{
return string.replace(/<\s*img[^>]+>/gi,
function(str){
return "<div id='d1'>"+str+"</div>";
});
}
window.onload = function()
{
alert(_wrapDivAroundImage(document.body.innerHTML));
}
</script>
</head>
<body>
<img src="http://i.dir.bg/clubs/img/new_clubs_logo.gif" border="0"/>
</body>
</html>
Господ ще ми прости греховете. Това му е работата.Редактирано от Бokop на 21.03.11 23:53.
| |
Тема
|
Re: как да сложа таг около друг таг с javascript ?
[re: Бokop]
|
|
Автор |
Гpиrop-ът (новак) |
Публикувано | 12.04.11 10:44 |
|
благодаря, но не прави точно това :)
Тоя код заменя <имг..> с <див><имг..></див> в променлива, имаща за стойност document.body.innerHTML. Обаче това не променя действителния document.body.innerHTML. Дори да направя
document.body.innerHTML = _wrapDivAroundImage(document.body.innerHTML);
- това не дава грешка, но и няма ефект. И в ИЕ, и в ФФ, ако погледна с дев.туулс текущия сорс, около имг няма див
| |
|
Изпълнението на този код ми дава следния резултат. Същия е и под IE.
<html>
<head>
<style type="text/css">
div {
border: 5px solid red;
}
</style>
<script type="text/javascript">
function _wrapDivAroundImage(string)
{
return string.replace(/<\s*img[^>]+>/gi,
function(str){
return "<div>"+str+"</div>";
});
}
window.onload = function()
{
document.body.innerHTML = _wrapDivAroundImage(document.body.innerHTML);
}
</script>
</head>
<body>
<img src="http://i.dir.bg/clubs/img/new_clubs_logo.gif" border="0"/>
</body>
</html>
Господ ще ми прости греховете. Това му е работата.Редактирано от Бokop на 13.04.11 15:19.
| |
Тема
|
Re: как да сложа таг около друг таг с javascript ?
[re: Бokop]
|
|
Автор |
Triglav Zmei (gorianin) |
Публикувано | 13.04.11 15:10 |
|
Пича просто не се е сетил че този алерт:
alert(_wrapDivAroundImage(document.body.innerHTML));
тук не му върши никаква работа и вместо това трябва да вкара рeзултата от изпълнението на функцията в HTML:
document.body.innerHTML = _wrapDivAroundImage(document.body.innerHTML);
Студенти, икономисвайте отпадъците! Те са за вас. (Лозунг в студентски стол)
| |
|
Страници по тази тема: 1 | 2 | (покажи всички)
|
|
|