如何使用字符串作为类名并在函数中调用它
How to use string as classname and call it in a function
<script type="text/javascript">
$(document).ready(function () {
$('table tr td a').click(function (event) {
alert(event.target.id);
var ClassName = event.target.id;
var Pref = '.'
var ClassFull = Pref + ClassName;
var TdText = $(ClassFull).text();
alert(TdText);
});
});
</script>
标记:
<p>
Account No:
<input id="AcctNo" type="text"/>
<input type="submit" id="submit" name="Submit" value="Submit" />
</p>
<table>
@foreach (var item in Model)
{
<tr>
<td>
<a id ="@Html.DisplayFor(modelItem => item.EmployerName)"
href ="#">@Html.DisplayFor(modelItem => item.EmployerName)</a>
</td>
<td class = "@Html.DisplayFor(modelItem => item.EmployerName)" >
@Html.DisplayFor(modelItem => item.AcctNo)
</td>
</tr>
}
</table>
我得到发件人的 ID,并有一个类名与发件人 ID 相同的 TD,然后获取其中的文本。 似乎没有返回我想得到的文本
我同意问题可能是因为雇主名称中的空格,但这里有几种其他方法可以获取数据。
请注意,我将单击事件处理程序移动到 tr 标记。您可以使用 html5 数据属性来存储任何 html 标记上的任何信息。 或者您可以像以前一样访问文本。
<p>
Account No:
<input id="AcctNo" type="text"/>
<input type="submit" id="submit" name="Submit" value="Submit" />
</p>
<table>
@foreach (var item in Model)
{
<tr>
<td class="EmployerName"
data-name="@Html.DisplayFor(modelItem => item.EmployerName)"
data-acctno="@Html.DisplayFor(modelItem => item.AcctNo)">
@Html.DisplayFor(modelItem => item.EmployerName)
</td>
<td class="AcctNo" >
@Html.DisplayFor(modelItem => item.AcctNo)
</td>
</tr>
}
</table>
<script type="text/javascript">
$(document).ready(function () {
$('tr').click(function (event) {
var TdText = $(this).find('.EmployerName').text();
var Td2Text = $(this).find('.AcctNo').text();
var Td3Text = $(this).find('.EmployerName').data('acctno');
alert(TdText);
});
});
</script>
我认为的
问题是,employerName
可以有空格和特殊字符,这会改变选择器的含义。
在这种情况下,您需要单击元素的父级的下一个兄弟姐妹的文本,因此
$(document).ready(function () {
$('table tr td a').click(function (event) {
var TdText = $(this).parent().next().text();
alert(TdText);
});
});
或者您可以使用预定义的类名,例如
<table>
@foreach (var item in Model)
{
<tr>
<td>
<a class="employer-name" id ="@Html.DisplayFor(modelItem => item.EmployerName)" href ="#">@Html.DisplayFor(modelItem => item.EmployerName)</a>
</td>
<td class = "acctNo" >
@Html.DisplayFor(modelItem => item.AcctNo)
</td>
</tr>
}
</table>
然后找到父级(td
)的兄弟姐妹,类acctNo
类似
$(document).ready(function () {
$('table a.employer-name').click(function (event) {
var TdText = $(this).parent().siblings('.acctNo').text();
alert(TdText);
});
});
相关文章:
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 在输入字段上有两个函数调用,一个在Blur上,一个不在Angular中
- 如何在Javascript函数调用中循环变量
- Javascript:应为赋值或函数调用,但实际看到的却是表达式
- 如何远程检查JavaScript应用程序的函数调用堆栈
- javascript函数调用不起作用
- 为什么这个函数调用会破坏程序并导致未定义的变量
- 如何通过函数调用设置图像的src
- 从全局函数调用Ember控制器上的方法
- 为什么Jquery$.ajax在函数调用中触发所有statusCode,即使调用成功
- JavaScript函数调用(arg1)(arg2)
- 打印链接时,将javascript函数调用到链接中
- 在函数调用中封装数据除了隐藏数据之外还有什么优点
- 无法从JavaScript中的函数调用对象属性
- 对中的函数调用进行排序是回调的唯一方法
- 函数调用方法有什么用
- Javascript:JSHint:应为赋值或函数调用,但实际看到的却是表达式
- HTML5(Bootstrap)通过函数调用运行动画
- 函数调用不起作用
- 函数中的Javascript函数调用