這裏的情況:jQuery鏈式函數和「this」:在這個例子中,我的語法不正確?
我有3個button
小號
<button type="button" class="job-update-button wp-core-ui button-primary" id="delete-btn">Remove</button>
<button type="button" class="job-update-button wp-core-ui button-primary" id="update-btn">Update</button>
<button type="button" class="job-update-button wp-core-ui button-primary" id="add-btn">Add</button>
和input
<input type="hidden" name="jobAction" value="" />
其value
應該涉及id
取其button
已被點擊。它可能看起來很傻,但這是我整合頁面上的邏輯的方式,以便服務器上的單個腳本可以處理一系列相關的AJAX請求。
delete-btn
點擊 - >jobAction
得到value
delete
的update-btn
點擊 - >jobAction
得到的update
add-btn
value
點擊 - >jobAction
得到的add
功能value
我正在使用click
個事件始於
jQuery('.job-update-button').click(function(){
// change the value of the memberAction hidden input based on which member-update-button was clicked
jQuery('input[name="jobAction]"').val(jQuery(this).attr('id').substring(0, this.IndexOf('-')));
,我試圖找出爲什麼我得到
this.IndexOf不是一個函數。
我的想法是,通過我打電話的時候this.IndexOf('-')
的this
指對象調用substring
,這是jQuery(this).attr('id')
返回的字符串。
這是錯的嗎?如果是這樣,你能幫我理解爲什麼嗎?是否有一個更有效率和緊湊的方式來執行整個過程?
這不會被綁定到點擊的對象嗎?您不是在點擊處理程序之外創建新的功能。加上錯誤的功能名稱。另外,當你不把它拉入變量時,它很難閱讀。 –
不,這與子串無關。它具有與將它傳遞給jQuery()時的相同的值。由ATTR(「ID」)返回的值賦給變量,做你的串並的indexOf上 – dman2306
「*'this'指調用'substring' *對象」 - 不,就像'this'在'jQuery(this)'不引用調用'.val()'的對象。它作爲參數傳遞,與任何地方調用的函數無關。它綁定到click函數的'function(){'範圍,並引用被點擊的DOM對象。 – Bergi