2012-09-29 40 views
0

我刚刚开始编程,并以某种方式不能想出任何明智的方法来解决以下问题,所以任何帮助将不胜感激!我有一个如下所示的.html文件:引用文本区域?

<head> 
<title>ABC</title> 
</head> 
<body> 
<div class="norm"> 
...  
<span class="jnenbez">13</span> 
....  
<div class="Absatz">text</div> 
<div class="Absatz">text</div> 
<div class="Absatz">CITE HERE**</div> 

“norm”div是一个父节点。 “jnenbez”跨度和“Absatz”divs在“标准”div内,但它们嵌套的深度可能会有所不同。现在我想引用“CITE HERE”区域,意思是生成“jnenbez 13 Absatz 3 ABC”的输出 - 意思是获取同一个“norm”div的“jnenbez”跨度的文本内容,获得索引“Absatz”div的编号,因为它是“规范”div的第三个孩子“Absatz”并获取内容。

1)我怎么能给这个字符串给用户,所以他可以复制粘贴到别的地方?似乎不容易修改Firefox的复制+粘贴行为。一个显而易见的解决办法是把输出括号,例如[jnenbez ...]在每个div的文本内容的末尾,但会减少HTML的可读性...

2)它甚至可以自动通过JQuery生成这个输出?

+1

您无法使用javascript控制系统剪贴板。您可能可以实现一个自动更改系统剪贴板内容的小型Flash插件。 – Lix

回答

1

不确定存储/显示信息的好方法。 此外,还不确定在班级='标准'容器中还有其他标记。这非常重要,完全影响有用解决方案的形式。

我假设了一个特定的结构 - 一个说第一个包含跨度是感兴趣的。另一个假设是,容器中唯一的div是有意义的,需要计算。

我相信你可以轻松打破它。 :D

<!DOCTYPE html> 
<html> 
<head> 
<script> 
function onBtnPress(element) 
{ 
    var result; 

    var cont = element.parentNode; 

    var span = cont.getElementsByTagName('span')[0]; 
    result = span.className + " "; 
    result += span.innerHTML + " "; 

    var divList = cont.getElementsByTagName('div'); 
    result += divList[0].className + " "; 
    result += divList.length+" "; 
    result += document.title; 

    cont.getElementsByTagName('p')[0].innerHTML = result; 
} 
</script> 

<title>ABC</title> 
</head> 
<body> 
    <div class="norm"> 
     <span class="jnenbez">13</span> 
     <div class="Absatz">text</div> 
     <div class="Absatz">text</div> 
     <div class="Absatz">CITE HERE**</div> 
     <button onclick='onBtnPress(this);'>click me</button> 
     <p>[string here]</p> 
    </div> 
    <div class="norm"> 
     <span class="Crapple">8</span> 
     <div class="ipod">worst</div> 
     <div class="ipod">music</div> 
     <div class="ipod">player</div> 
     <div class="ipod">I ever</div> 
     <div class="ipod">bought</div> 
     <div class="ipod">CITE HERE**</div> 
     <button onclick='onBtnPress(this);'>click me</button> 
     <p>[string here]</p> 
    </div> 
</body> 
</html> 
+0

谢谢你的帮助! – Elip