0

ブラウザが偽のクリックをサポートしていないことは知っています。戻って邪魔な JavaScript をすべてリファクタリングし始めることができることはわかっていますが、そうはなりません。と言う事で…

つまりね。

好みを表すリンクがたくさんあります。例: (これはレンダリングされたコンテンツです。以下でこれを作成する実際の jsp は見ていて楽しいものではありません。)

<table id="snTabsAvail" class="content" cellspacing="5" cellpadding="1" border="0" align="center">
<tbody>
  <tr>
    <td id="Serial Number_Engine Test_0" class="tbutton" width="95px" nowrap="" height="55px"  style="background-color:lime">
      <a href="javascript:tabToggle('Serial Number', 'Engine Test', spref, 0, tabPicked, tabAvailable, 'Failed to update your tab preference, please try again later'); ">
    </td>
    <td id="Serial Number_Machine Test_1" class="tbutton" width="95px" nowrap="" height="55px" style="background-color:lime">
      <a href="javascript:tabToggle('Serial Number', 'Machine Test', spref, 1, tabPicked, tabAvailable, 'Failed to update your tab preference, please try again later'); ">
   </td>
...

これらの呼び出しは、サーバー上で設定を行う Ajax 呼び出しを表しています。すべて選択とすべて選択解除を含めたいので、それらすべてを個別にクリックする必要はありません。私はこれを行うことができないことを知っています

$('#snTabsAvail td[style=background-color:silver] a').click();

偽のクリックの問題のため。

これらのクリックはJavaScript ajax呼び出しを表すため、選択したいものをクリックして選択解除する方法を見つけようとしています。リンクが含まれているセルは「タブ」を表し、背景色によってどのセルが選択されているかがわかります...これが、このテーブル内の選択されていない背景色のセルはすべて、アンカーを取得してクリックすると述べた理由です。これは機能しません。

ここですべてのアンカーを取得し、それらを偽造する方法について何か考えはありますか? はい..私はプログラム的に意味します。

4

1 に答える 1

1

次のように、各リンクのhref属性でeval()を使用できます(「javascript:」の部分を削除する必要があるかどうかはわかりません)。

eval($('#snTabsAvail a').attr('href').substring(11));

編集:もちろん、これは単一のリンク用です。完全なソリューションを得るには、$('#snTabsAvail a')によって返される要素を反復処理する必要があります。

于 2011-11-18T15:18:36.573 に答える