简体   繁体   English

发送表中已更改行的ID(将HTML发送到JS)

[英]Send ID of changed row in table (html to JS)

I have 7 row and i need to use my function only for row which was edited. 我有7行,我只需要对已编辑的行使用我的函数。 How can i send id? 如何发送身份证? or maybe there are more easy way? 还是有更简单的方法? I tried to send number of row id onChange="setprice(this.value,18,5)" last one is ID of row, but on split int+ string I can not detetct it as ID . 我尝试发送行号id onChange="setprice(this.value,18,5)"最后一个是行的ID,但是在分割int +字符串上,我无法将其作为ID取消引用。 For example: var idofrow = ('setvalue'+row); $("#idofrow").html(""); 例如: var idofrow = ('setvalue'+row); $("#idofrow").html(""); var idofrow = ('setvalue'+row); $("#idofrow").html(""); . #idofrow does not work #idofrow不起作用

 function setprice(val, ay, row) { var rowid_ilk = event.target.getAttribute('id'); $("#rowid_ilk").html(""); var total = Math.round((((({{ price_without_symbol } } - val) / ay) * ({{ kredittable.kredit_faiz / 100 }})) + (({{ price_without_symbol }} - val) / ay))); var rowset = 'setvalue' + row; alert(rowset); rowset.innerHTML += total; } 
 <table class="table table-striped" id="tablebrd"> <thead> <tr> <th scope="col">{{ text_kredit_mesac }}</th> <th scope="col" style="width: 28%">{{ text_min_vznos }}</th> <th scope="col">{{ text_mes_plata }}</th> </tr> </thead> <tbody> <tr> <td>3 {{ text_kredit_mesaca }}</td> <td><input type="number" name="ilkoden" id="ilkoden1" value="{{ kredittable.kredit_min_ilkin }}" onChange="setprice(this.value,3,1)" /></td> <td> <div id="setvalue1"></div> </td> </tr> <tr> <td>6 {{ text_kredit_mesaca }}</td> <td><input type="number" name="ilkoden" id="ilkoden2" value="{{ kredittable.kredit_min_ilkin }}" onChange="setprice(this.value,6,2)" /></td> <td> <div id="setvalue2"></div> </td> </tr> <tr> <td>9 {{ text_kredit_mesaca }}</td> <td><input type="number" name="ilkoden" id="ilkoden3" value="{{ kredittable.kredit_min_ilkin }}" onChange="setprice(this.value,9,3)" /></td> <td> <div id="setvalue3"></div> </td> </tr> <tr> <td>12 {{ text_kredit_mesaca }}</td> <td><input type="number" name="ilkoden" id="ilkoden4" value="{{ kredittable.kredit_min_ilkin }}" onChange="setprice(this.value,12,4)" /></td> <td> <div id="setvalue4"></div> </td> </tr> <tr> <td>18 {{ text_kredit_mesaca }}</td> <td><input type="number" name="ilkoden" id="ilkoden5" value="{{ kredittable.kredit_min_ilkin }}" onChange="setprice(this.value,18,5)" /></td> <td> <div id="setvalue5"></div> </td> </tr> <tr> <td>24 {{ text_kredit_mesaca }}</td> <td><input type="number" name="ilkoden" id="ilkoden6" value="{{ kredittable.kredit_min_ilkin }}" onChange="setprice(this.value,24,6)" /></td> <td> <div id="setvalue6"></div> </td> </tr> <tr> <td>36 {{ text_kredit_mesaca }}</td> <td><input type="number" name="ilkoden" id="ilkoden7" value="{{ kredittable.kredit_min_ilkin }}" onChange="setprice(this.value,36,7)" /></td> <td> <div id="setvalue7"></div> </td> </tr> </tbody> </table> 

You can access the id of your changed element by accessing the target property of the event: event.target : 您可以通过访问事件的target属性来访问已更改元素的idevent.target

event.target is a reference to the object that dispatched the event event.target是对调度事件的对象的引用

Then access its id name with .getAttribute . 然后使用.getAttribute访问其id名称。 And remove the first seven letters of the id name to get the element's number with the method .substr . 并使用.substr方法删除id名称的前七个字母,以获取元素的编号。

event.target.getAttribute('id').substr(7)

Here's a quick demo: 这是一个快速演示:

 const fn = function() { console.log(event.target.getAttribute('id').substr(7)) } 
 <div id="ilkoden11" onclick="fn()">This is item 11</div> 


If you want to select the id of an element on the same level, you will need to do some navigating inside the HTML tree, the following selector will do that: 如果要在同一级别上选择元素的ID,则需要在HTML树中进行一些导航,以下选择器将完成该操作:

const div = event.target.closest('tr').querySelector('div').id;
                              ↑                  ↑
                        parent <tr>      find <div> child

Here is an example: 这是一个例子:

 const setprice = function() { const target = event.target.id; const value = event.target.value; const div = event.target.closest('tr').querySelector('div').id; console.log(target, value, div) } 
 <table> <tr> <td><input id="ilkoden2" onkeyup="setprice()" /></td> <td> <div id="setvalue2"></div> </td> </tr> </table> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM