如何使用jquery中的if循环检查输入名称是否包含特定值

时间:2017-09-21 06:24:45

标签: javascript jquery

我有一张有价值观的桌子。一些值以特定字符串结尾,因此我想检查输入name属性是否包含使用if循环的特定字符串。

我尝试使用下面的代码,但它不起作用:

$("#tabTax tbody tr").each(function () {
    if (this.name.endswith('taxtype')) {
        $(this).replaceWith('<tr id="rowTax' + $(this).find("input[name$='taxtype']").val() + '><td hidden="hidden"></td><td> ' + $(this).find("input[name$='taxtype']").val() + '(' + parseFloat($(this).find("input[name$='Taxperce']").val()) + '%)</td><td><input type="text" name= Bookingtax[' + rowcount + '].TaxAmount  disabled="disabled"  class="form-control chargesinputfield" value=' + ($(this).find("input[name$='Taxperce']").val() * sum / 100).toFixed(2) + '></input></td><td hidden="hidden"><input name=Bookingtax[' + rowcount + '].TaxID id=' + $(this).find("input[name$='TaxID']").val() + ' type="text" class="form-control" value=' + $(this).find("input[name$='TaxID']").val() + ' ></input></td><td hidden="hidden"><input name=Bookingtax[' + rowcount + '].taxtype id=' + $(this).find("input[name$='taxtype']").val() + ' type="text" class="form-control" value=' + $(this).find("input[name$='taxtype']").val() + ' ></input></td><td hidden="hidden"><input name=Bookingtax[' + rowcount + '].Taxperce id=' + $(this).find("input[name$='Taxperce']").val() + ' type="text" class="form-control" value=' + $(this).find("input[name$='Taxperce']").val() + ' ></input></td><td hidden="hidden"><input name=Bookingtax[' + rowcount + '].TaxAmount id=' + $(this).find("input[name$='TaxAmount']").val() + ' type="text" class="form-control" value=' + ($(this).find("input[name$='Taxperce']").val() * sum / 100).toFixed(2) + ' ></input></td></tr>')
        rowcount++;
    } else {
        $("#discountrate").replaceWith('<tr id="discountrate"><td> Discount</td><td hidden="hidden"></td><td><input type="text" name="Discountrate"  id="txtDiscountrate"  class="form-control chargesinputfield" value="' + $("#txtDiscountrate").val() + '"></input></td><td hidden="hidden"><input name=Bookingtax[' + rowcount + '].Taxperce id=' + $(this).find("input[name$='Taxperce']").val() + ' type="text" class="form-control" value=' + $(this).find("input[name$='Taxperce']").val() + ' ></input></td><td hidden="hidden"><input name=Bookingtax[' + rowcount + '].TaxAmount id=' + $(this).find("input[name$='TaxAmount']").val() + ' type="text" class="form-control" value=' + ($(this).find("input[name$='Taxperce']").val() * sum / 100).toFixed(2) + ' ></input></td></tr>')
    }
})  

如果(this.name.endswith('taxtype')),我尝试了这个,但它无效。

请帮忙。提前谢谢......

1 个答案:

答案 0 :(得分:3)

尝试使用$(this).is("[name$=taxtype]")

这将检查name是否以字符串taxtype结尾($=表示结束)

<强>演示

$("#tabTax tr").each(function() {
  if ($(this).is("[name$=taxtype]")) {
    console.log("name ends with taxtype")
    if ($(this).is("[name=taxtype]")) {
      console.log("this only match taxtype")
    }
  } else {
    console.log("name does not ends with taxtype")
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="tabTax">
  <tr></tr>
  <tr name="taxtype"></tr>
  <tr></tr>
  <tr name="somethingtaxtype"></tr>
</table>