<script>标记</script> </tag>之前的<tag>

时间:2014-08-14 07:08:16

标签: javascript html tags

我有一个生成以下代码的页面(示例):

<div class="map_object">
<span> test1 </span> 
<script></script>
</div>

<div class="map_object">
<span> test2 </span>
<script></script>
</div> 

<div class="map_object"> 
<span> test3 </span>
<script></script>
</div>

这些块由html模板文件创建。带有<span>的行由占位符(用户可以将其输入文本字段)提供,其余部分位于模板文件中。

我需要的是将<span>内容放在每个<script>中(总是完全相同的脚本)让我们说第1块应该返回&#34; test1&#34;等等。

您是否有任何想法,如何找到当前的<script>,然后在<span>中获取内容,那么这适用于每个块而不仅仅是第一个或最后一个?

3 个答案:

答案 0 :(得分:0)

不确定你想要什么......

这是纯粹的 javascript 解决方案:DEMO

window.onload=function(){
    var span = document.getElementsByTagName("span");
    for(var i=0;i<span.length;i++)
    {
        span[i].nextElementSibling.innerHTML = span[i].innerHTML
    }
    };

<强>输出:

<body>
  <div class="map_object">
<span> test1 </span> 
<script> test1 </script>
</div>

<div class="map_object">
<span> test2 </span>
<script> test2 </script>
</div> 

<div class="map_object"> 
<span> test3 </span>
<script> test3 </script>
</div>

使用 jquery DEMO

完成此操作
$(function(){
    $('span').each(function(){
        $(this).next('script').text($(this).text());
    });
})

<强>输出:

<div class="map_object">
<span> test1 </span> 
<script> test1 </script>
</div>

<div class="map_object">
<span> test2 </span>
<script> test2 </script>
</div> 

<div class="map_object"> 
<span> test3 </span>
<script> test3 </script>
</div>
  

注意:如果这就是你的意思那么我们也可以用javascript做到这一点

答案 1 :(得分:0)

不是最干净的解决方案,但又一次,也不是最干净的问题:

<div class="map_object">
    <span> test1 </span> 
    <script>
        alert(document.currentScript.parentNode.getElementsByTagName('span')[0].innerHTML)
    </script>
</div>

小提琴here

澄清一点:

<div class="map_object">
    <span> test1 </span> 
    <script>
        var scriptElement = document.currentScript;
        var divElement = scriptElement.parentNode;
        var firstSpanElement = divElement.getElementsByTagName('span');

        alert(firstSpanElement.innerHTML)
    </script>
</div>

答案 2 :(得分:0)

您可以使用Jquery尝试此操作。

<script>
$(document).ready(function(){
  var values= $(".map_object > span");//Get spans

   $.each(values, function( index, value ) {
     console.log(value.innerHTML);//get every span content
   });
});
</script>