0

ここに問題があります:

<h2><b>Progress: </b> <font color="87edff">3 / 5</font> <b>Clicks</b></h2>

PHP または Javascript でスクリプトを作成して、最初の数字 (この場合は 3) をチェックし、それが特定の数字 (たとえば 5) より大きい場合は、非表示のテキストを表示したり、リンクを開いたりするなどの操作を行いたいと考えています。

これを行う方法(またはできない場合)を知っている人はいますか?POST + GET 変数を使用することを考えましたが、成功せずに失敗しました。

4

2 に答える 2

1

正規表現を使用して 3/5 を取得し、その後分割し/ て配列内から比較します。

別のルートとして、3/5 を含む要素に名前を付け、jquery でその値を取得することもできます。次に、同じことを行い、文字列を分割して/比較します。

POST/GET は、フォームを送信するとき、またはサーバー上のスクリプトにデータを送信するときにのみ使用できます。これらは主にtextareaおよび 入力に使用されます

于 2012-06-27T22:43:25.573 に答える
0

すでに jquery を使用している場合は、いくつかのおしゃれな jquery セレクターでそれができます。

http://jsfiddle.net/qPPsH/1/

findThings = function(){
    // select the first <b> elements that contain "Clicks", AND
    // has a sibling before it that is a <font>, AND
    // has a sibling THAT has both an <h2> as a parent, and contains the text "Progress".

    var firstnumber = -1;  // some number that doesn't make sense
    var secondnumber = -1;

    $('h2 > b:contains("Progress:") + font + b:contains("Clicks"):first').each(
        function(){
            //alert("Element is:",this);
            //alert("Element contains:" + $(this).text());

            // "this" is the <b> that contains "Clicks". Find the first sibling that is a <font> and grab the text from it.
            text = $(this).siblings("font:first").text();
            //alert(text);

            numbers = text.split("/"); //split the text by "/" character.

            if (numbers.length == 2){ // make sure there are two numbers!
              firstnumber = numbers[0];
              secondnumber = numbers[1];
            }
        }
    );

    alert("First number:" + firstnumber);
    alert("Second number:" + secondnumber);

    var whatever = 5;
    if(firstnumber >= whatever){
        alert("YOU WIN!");
    }else{
        alert("You Lose!");
    }
}

ただし、これはコードが同じサイトに配置されている場合にのみ機能します。同じサイトにある場合、要素にIDを貼り付けてIDで値にアクセスできるため、これはとにかく恐ろしい考えです。それでも、セレクターがいかに優れているかを示しています。

于 2012-06-27T23:20:17.063 に答える