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 は 1 つの親ノードです。「jnenbez」スパンと「Absatz」div は「norm」div 内にありますが、ネストの深さはさまざまです。ここで、 「jnenbez 13 Absatz 3 ABC」の出力を生成することを意味する「CITE HERE」エリアを引用したいと思います-同じ「ノルム」divの「jnenbez」スパンのテキストコンテンツを取得し、インデックス番号を取得することを意味します「Absatz」div は、「norm」div の 3 番目の子「Absatz」であり、コンテンツを取得するためです。

1) この文字列をユーザーに渡して、別の場所にコピーして貼り付けるにはどうすればよいですか? Firefox のコピーと貼り付けの動作を変更するのは簡単ではないようです。明らかな解決策は、出力を [jnenbez...] のように、各 div テキスト コンテンツの最後に括弧で囲むことですが、そうすると html の読みやすさが低下します...

2) JQuery を介してこの出力を自動的に生成することさえ可能ですか?

4

1 に答える 1

1

情報を保存/表示する良い方法がわかりません。また、class='norm' コンテナーに他にどのようなマークアップがあるか不明です。これは非常に重要であり、有用なソリューションの形に完全に影響を与えます。

私は特定の構造を想定しました - 最初に含まれるスパンが重要であると言う構造です。もう 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>
于 2012-09-29T11:30:53.143 に答える