<tr onclick="setRowIndex(this);" style='display:none' ><td ><select style="width: 100%;" name="materialName" class="button_ui"><option value="盘纸">盘纸</option><option value="水松纸">水松纸</option></select></td><td ><span id="iscorrespond" onclick="swap(this);">√</span></td><td ><span id="isbumps" onclick="swap(this);">√</span></td> <td ><input type="text" name="sendid" value="" style="font-size:12pt;" size="7"/></td><td ><input type="text" name="checkid" value="" onclick="" style="font-size:12pt;background-color=#EEEEE7;"size="7" readonly disabled/></td><td ><input type="text" name="checktime" value="" onclick="gettime(this)" style="width:160px;font-size:12pt;background-color=#EEEEE7;" size="7" readonly disabled/></td><td><select style="width: 100%;" name="status" class="button_ui" disabled><option value="0">新增</option><option value="1">送料完成</option><option value="2">核对完成</option></select></td><td><input type="button" value="保存" onclick="save(this);"/></td></tr>//确定&保存function save(v){if(!window.confirm("确认保存?")){ return; }//获取本次保存的内容var dv = v;var $v = $(dv);//材料名称var materialName = $v.parent().parent().find("select").val();alert(materialName);}上面是正确的代码谁能告诉我这个 为什么就不行。给这个 select 加 id,或者 通过 class 来筛选同样都不行。求解var materialName = $v.parent().parent("select [name='materialName ']").val()图片是 jquery手册上的例子难道是因为 有2层 parent 所以就不行了?不能这样把?var materialName = $v.parent().parent("select").html()也都试过
2 回答

青春有我
TA贡献1784条经验 获得超8个赞
$v.parent().parent("select").html()
这样写也找不到!
$v.parent().parent()是tr.所以无论你parent()中的参数除了写tr或不写外,其他节点都会取不到的。而例子中
$v.parent().parent().find("select").val();
使用find在当前tr中查找select的话,就可以找到2个,然后val()会默认返回第一个的val();
如果要改,则:
$v.parent().parent().find("select[name='materialName']").val();
跟例子中的一样。
还有其他写法:
$v.parents('tr:first').find("select:first").val();
$v.parent().siblings().find("select[name='materialName']").val();
$v.parent().siblings().children("select[name='materialName']").val();
等等~

白猪掌柜的
TA贡献1893条经验 获得超10个赞
用closest,parent只能向上取,所以$v.parent().parent()是tr这一层,而tr及其上层没有select [name='materialName]自然找不到,所以错了
添加回答
举报
0/150
提交
取消