是否可以使用onclick获取元素的值?

时间:2013-08-08 11:47:33

标签: javascript onclick

我目前有一个表,其中包含使用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);
} 

6 个答案:

答案 0 :(得分:5)

使用Javascript:

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

jQuery的:

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

获取HTML:

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

jQuery的:

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

答案 1 :(得分:1)

使用javascript:

获取没有任何元素的原始文本或:

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

获取标签的完整html代码。内容将存储在'somevar'变量中。

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

答案 2 :(得分: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(),您可以运行任何代码。

您可以在此fiddle

中看到它正常工作

此处有大量信息https://developer.mozilla.org/en-US/docs/Web/API

答案 3 :(得分: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>

答案 4 :(得分:0)

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

您可以尝试将this传递到onclick方法

HTML

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

JS

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

如果我是你,我会看看jQuery。它使所有这些东西更容易实现。

答案 5 :(得分:-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*')