我有这个HTML代码
<table style="width: 100%;">
<tr>
<td>
ID
</td>
<td>
<input id="Text1" type="text" class="b" />
</td>
</tr>
<tr>
<td>
Name
</td>
<td>
<input id="Text2" type="text" class="b" />
</td>
</tr>
<tr>
<td>
Family
</td>
<td>
<input id="Text3" type="text" class="b" />
</td>
</tr>
<tr>
<td colspan="2">
<input id="Button1" type="button" value="Click Me" />
</td>
</tr>
</table>
我想,如果用户没有输入文字选择兄弟td并在td中获取文本我正在编写此代码但没有工作
$(function () {
$("#Button1").click(function () {
var ls = $(".b");
alert(ls.length);
for (var i = 0; i <= ls.length - 1; i++) {
if ($(ls[i]).val() == "") {
alert("hi");
var ctx = $(ls[i]).parent("td").parent().siblings();;
alert($(ctx).val());
//
alert(ctx.length);
}
}
});
});
例如,如果用户在Text1中输入id并按下按钮1我想要显示警告ID。
请帮帮我。谢谢所有
答案 0 :(得分:1)
例如,如果用户在Text1中输入id并按下按钮1我想要显示警告ID。
所以你想找到之前的td
,即td
之前的input
包含没有值的$(function () {
$("#Button1").click(function () {
var ls = $(".b");
var input;
alert(ls.length);
// Note that rather than using a `for` loop, you might
// look at using jQuery's `each` function
for (var i = 0; i < ls.length - 1; i++) {
// Get a jQuery wrapper for this `input` element
input = $(ls[i]);
// Is it empty?
if (input.val() == "") {
// Yes, traverse up to the `td`, then get the previous `td`
var ctx = input.closest("td").prev();
// Show its text (or html); note that it's not `val`, `td`
// elements don't have a *value*, they have text/markup
alert(ctx.text()); // Or ctx.html()
}
}
});
});
吗?这将是这样的:
{{1}}
答案 1 :(得分:1)
这是一个涵盖所有空项目的警报,而不是每个
的单个警报DEMO:http://jsfiddle.net/RCHss/
$("#Button1").click(function() {
var empty_items = [];
$(".b").each(function() {
if ($(this).val() == '') {
empty_items.push($.trim($(this).parent().prev().text()));
}
});
if (empty_items.length) {
alert('Please fill in :\n\n' + empty_items.join('\n'))
}
});