我有一个生成以下代码的页面(示例):
<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>
中获取内容,那么这适用于每个块而不仅仅是第一个或最后一个?
答案 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>