0

現在、php を使用してエコーされる電子メール テンプレート名のリストを含むテーブルがあります。以下はphpコードの一部です。テーブルの値を取得してJSファイルに渡し、将来のAJAXコマンドが別のファイルに渡すようにしています(問題はありません)。値を警告する最初の試みは、値が未定義であると述べました。私の 2 回目の試みは、それが内部にある要素のタイプを示しました (当時はスパンでした)。今は何も表示されていません。提案?

PHP コード:

<table class="departments">
<tr>
<th scope="col" style="width: 175px;">Email Name</th>
';
$get_depts = mysql_query("SELECT dept_name FROM depts where bus_id = '{$_SESSION['bus_id']}'");
while(($department = mysql_fetch_assoc($get_depts)))
{
    echo '
    <th scope="col" style="width: 175px;">'.$department['dept_name'].'</th>
    ';
}
echo '
</tr>
';
$get_emails = mysql_query("SELECT id, email_name from emails where bus_id = '{$_SESSION['bus_id']}' ORDER BY email_name ASC");
while(($email = mysql_fetch_assoc($get_emails)))
{
    echo '
    <tr>
    <td id="test" onclick="moveValue()">'.$email['email_name'].'</td>
    ';

現在の JS コード:

function moveValue()
{
var x = document.getElementById(test);
var y = x.innerHTML;
alert(y);
} 
4

6 に答える 6

5

Javascript:

var y = document.getElementById("test").innerText;

jQuery:

$("#test").text();

HTML を取得するには:

var html = document.getElementById("test" ).innerHTML;

jQuery:

$("#test").html();
于 2013-08-08T11:49:22.137 に答える
2

id 属性は、ループ内のすべての td で同じになります。したがって、JS はどの要素が必要かを認識できません。

メソッドに渡しthisてみることができますonclick

HTML

<td onclick="moveValue(this);">

JS

function moveValue( elem )
{
    alert(elem.innerHtml);
}

もし私があなただったら、見てみjQueryます。これにより、これらすべてをより簡単に達成できます。

于 2013-08-08T11:52:45.773 に答える
1

JavaScript の場合:

要素なしで生のテキストを取得するには、または:

somevar=document.getElementById ( "test" ).innerText;

タグの完全な HTML コードを取得します。内容は「somevar」変数に格納されます。

somevar=document.getElementById ( "test" ).innerHTML;
于 2013-08-08T11:52:25.803 に答える
1

あなたのコードにはたくさんの問題があるので、すべての問題には触れたくありません。ただし、<td>クリックして要素の値を取得するのは簡単です。

最初に、テーブル内の各セルにクリック ハンドラーを割り当てる必要があります。これを行う最も簡単な方法は、各セルをループして、次のようにハンドラーを割り当てることです。

var cells = document.getElementsByTagName('td');
for(var i = 0; i <= cells.length; i++){
    cells[i].addEventListener('click', clickHandler);
}

function clickHandler()
{
    alert(this.textContent);
}

その後、セルをクリックするたびにclickHandler()が呼び出され、任意のコードを実行できます。

あなたはそれがこのフィドルで働いているのを見ることができます

ここにたくさんの情報があります https://developer.mozilla.org/en-US/docs/Web/API

于 2013-08-08T12:22:42.347 に答える
-1

その仕事。

function clickValue(elem) {
  var x = document.getElementById(elem).innerHTML;
  alert(x);
}
<table>
  <th>Coba</th>
  <tr>
    <td id="1" onclick="clickValue('1')">value</td>
  </tr>
  <tr>
    <td id="2" onclick="clickValue('2')">value yg ke 2</td>
  </tr>
</table>

変化id="*anyvalue*"clickValue('*anyvalue*')

于 2015-10-07T09:03:49.453 に答える