Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 调用表行名称属性而不是.eq(n)_Javascript_Jquery - Fatal编程技术网

Javascript 调用表行名称属性而不是.eq(n)

Javascript 调用表行名称属性而不是.eq(n),javascript,jquery,Javascript,Jquery,我希望此代码可重用,而不是: $this.closesttr.findtd input.eq1.val 我希望通过以下方式来命名: $this.closesttr.findtd input.attrname,因此我不必设置每个.eqn 但它不起作用: 以下是我的jquery代码: $('.tdiv').on("click", "#tddelete", function () { if ($(this).closest("tr").find("td input").eq(1)

我希望此代码可重用,而不是:

$this.closesttr.findtd input.eq1.val

我希望通过以下方式来命名:

$this.closesttr.findtd input.attrname,因此我不必设置每个.eqn 但它不起作用:

以下是我的jquery代码:

   $('.tdiv').on("click", "#tddelete", function () {
        if ($(this).closest("tr").find("td input").eq(1).val() == "ADD") alert("add");
        else alert("change");
    });
请参阅我的第一个代码。id属性应该是唯一的。另外,您正在jQuery中查找属性选择器。例如

$this.closesttr.findtd输入[type='text'].val

JS

根据评论更新

在表格单元格中可能有多个文本类型的输入。因此,我建议向您希望从中获取值的输入元素添加一个类

HTML


在find方法中使用属性选择器,而不是使用attr。findtd输入[name=somename]


首先,您不应该对多个元素使用id,所以将所有按钮元素的id=tddelete更改为class=tddelete

<input type="button" class="tddelete" />

不清楚您想要做什么:按属性名筛选元素?不要在多个元素上使用相同的id。ID必须是唯一的。@最后面的部分没有筛选,只想获取属性nami为的输入的值flag@bumbumpaw此任务包括过滤操作输入,其属性名称为flagahh.ok sir@posdnost include filter.attribute name flag在哪里使用?如果我有很多tds输入,这对我来说是没有用的?你的例子表明你只想得到一个文本类型的输入。我将更新答案以使用类而不是输入attributes@bumbumpaw但是,更新后,您选择的答案似乎无法解决您刚才对我的解决方案所做的评论现在取消标记为答案,但当我尝试添加另一个输入时,只会显示第一个输入值,该值为空,另外,在添加更多输入后重新排列td'S时,您需要哪个输入值?是否有任何特定的输入条件或输入类别?仅显示带有属性名称标志的输入值?您的意思是这样的?是的,它应该可以工作。有关兄弟姐妹的更多信息,请参阅
<table class="tdiv">
    <tr>
        <td>
            <input type="button" class="tddelete" />
        </td>
        <td>
            <input type="text" class="getVal" value="ADD" />
        </td>
    </tr>
    <tr>
        <td>
            <input type="button" class="tddelete" />
        </td>
        <td>
            <input type="text" class="getVal" value="CHANGE" />
        </td>
    </tr>
</table>
$('.tdiv').on("click", ".tddelete", function () {
    var inputVal = $(this).closest("tr").find(".getVal").val();
    alert(inputVal);
});
$('.tdiv').on("click", "#tddelete", function () {
    if ($(this).closest("tr").find("td input[name=somename]").eq(1).val() == "ADD") alert("add");
    else alert("change");
});
<input type="button" class="tddelete" />
$('.tdiv').on("click", ".tddelete", function () {
    var val = $(this).closest("td").siblings().find("input[name=flag]").val();
    alert(val);
});