как обратиться к комментарию

1 23
[Удален]
#21

ivan-lev, если в приведённом коде поставить ещё один такой же комментарий

<body>
<div>
....
</div>
<div id="sdf">
<div id="as1">
<h1>товар 8</h1>
<!--xxxxxxx-->
<div class="imgbox">
<img src="..." alt="" class="scrin s2" />
</div>
<p>....</p>
<div>
.... ?
</div>

<div class="perenos">
..... perenos ...
</div>
<!--xxxxxxx-->
</div>
</div>
<dl id="dfsd">
.....
</dl>
</body>
</html>

уже появятся проблемы - отработка 2 раза для каждого, а если учесть что в моём варианте происходит вставка html, вообще беда

заменить по id в моём случае не получиться - тупо не срабатывает, возможно из-за того что весь dom формируется js, и для обращения к нему используется плагин jquery.livequery.js

P.S. пришлось остановиться на class, хотя <!-- --> лучше - пс на них вообще не обращает внимания

IL
На сайте с 20.04.2007
Offline
435
#22
burunduk:
уже появятся проблемы - отработка 2 раза для каждого,

почему для каждого? Всего 2 раза - по числу закомментированных участков.

Если нужно учитывать содержимое комментария (xxx vs yyy) - сравнивать с e.nodeValue

И до кучи.. код не работает, если "соседей" у этого комментария не хватает. Можно допилить..


<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("*").contents().filter(function(){
return this.nodeType == 8;
}).each(function(i, e){
if (e.nodeValue=='yyyyyyy') {
if ($(e).prev().size())
$(e).prev().next().css('border','solid 2px red');
else if ($(e).next().prev().prev().size())
$(e).next().prev().prev().css('border','solid 2px green');
else
$(e).parent().children().eq(0).css('border','solid 2px blue');
}
});
})
</script>
</head>
<body>
<div>
....
</div>

<div>
<h1>товар 8</h1>
<!--yyyyyyy-->
</div>


<div>
<h1>товар 7</h1>
<h1>товар 8</h1>
<!--yyyyyyy-->
</div>

<div>
<h1>товар 5</h1>
<h1>товар 6</h1>
<h1>товар 7</h1>
<h1>товар 8</h1>
<!--yyyyyyy-->
</div>


<div>
<h1>товар 5</h1>
<h1>товар 8</h1>
<!--yyyyyyy-->
<h1>товар 6</h1>
<h1>товар 7</h1>

</div>

<div>

<h1>товар 8</h1>
<!--yyyyyyy-->
<h1>товар 7</h1>
</div>


<div id="sdf">
<div id="as1">

<h1>товар 8</h1>
<!--yyyyyyy-->
<div class="imgbox">
<img src="..." alt="" class="scrin s2" />
</div>
<p>....</p>
<div>
.... ?
</div>

<div class="perenos">
..... perenos ...
</div>
<!--xxxxxxx-->
</div>
</div>
<dl id="dfsd">
.....
</dl>
<pre id="pre">888</pre>
</body>
</html>
... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
IL
На сайте с 20.04.2007
Offline
435
#23
ivan-lev:
И до кучи.. код не работает, если "соседей" у этого комментария не хватает. Можно допилить..

Даже не так.. в предыдущем варианте второе (green) условие лишнее..


<script>
$(document).ready(function(){
$("*").contents().filter(function(){
return this.nodeType == 8;
}).each(function(i, e){
if (e.nodeValue=='yyyyyyy') {
if ($(e).prev().size())
$(e).prev().next().css('border','solid 2px red');
else
$(e).parent().children().eq(0).css('border','solid 2px blue');
}
});
})
</script>
1 23

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий