0

我目前有一个表,其中包含使用 php 回显的电子邮件模板名称列表。下面是部分php代码。我正在尝试获取表值并将其传递给我的 JS 文件,未来的 AJAX 命令会将其传递给另一个文件(我不会有任何问题)。我第一次尝试提醒该值表明该值未定义。我的第二次尝试显示了它内部的元素类型(当时它是一个跨度)。现在它什么也没有显示。建议?

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

对于循环内的每个 td,您的 id 属性都是相同的。所以 JS 不会知道你想要哪个元素。

您可以尝试传入thisonclick方法

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 回答
0

你可以通过

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

或通过:

function moveValue(element) {
  var y = element.innerHTML;
  alert(y);
}
//with the following html code:
<td onclick="moveValue(this)">'.$email['email_name'].'</td>
于 2013-08-08T11:52:06.133 回答
-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 回答