[英]get element type from element found by class
我試圖創建一個函數,該函數將獲取具有特定類的任何類型的任何元素的“值”(textarea,span等)
為此,我需要測試我當前正在處理哪種元素,可以使用alert($('#gdocDump').prop('tagName'));
輕松地完成該操作alert($('#gdocDump').prop('tagName'));
但是由於某種原因,如果我使用var varElems=$(".feedback");
獲取同一類的所有元素, 然后嘗試遍歷它們,像var elementType = elem.prop('tagName');
,出現錯誤“ TypeError:elem.prop不是函數”
var elementType = elem.prop('tagName');
我需要更改什么? 在下面正常工作? jsFiddle: 測試場
HTML
<textarea id="gdocDump" class="feedback area" rows="1" cols="22" ></textarea><br />
<input id="scaleSlider" class="feedback" type="range"value="1" min="1" max="9" step="1"/><br />
<span id="command1" class="feedback">This is a span</span><br />
<span id="command2" class="feedback">This is a span</span><br /><br />
<input type="button" id="sendFeedback" value="Feedback"/><br /><br /><br /><br />
<input type="button" id="test" value="Test a specific element"/>
使用Javascript:
$("#sendFeedback").click(function() {
composeAndCallEmail();
});
$("#test").click(function() {
alert($('#gdocDump').prop('tagName'));
});
function composeAndCallEmail() {
var varElems=$(".feedback");
var feedback=[];
$(varElems).each(function(index, element) {
feedback.push(getElemContents(element))
});
}
function getElemContents(elem){
var elementType = elem.prop('tagName');
//this is where the problem occurs
if(elementType=='INPUT')return elem.val();
//... will add more here later
}
在each(index, element)
內部each(index, element)
參數是index和本機DOM元素
$(varElems).each(function(index, element) {
feedback.push(getElemContents(element)) // plain DOM element, not jQuery
});
這意味着您必須重新包裝它或使用本機elem.tagName
屬性
function getElemContents(elem){
var elementType = $(elem).prop('tagName');
if ( elementType.toLowerCase() === 'input' )
return $(elem).val();
}
如上所述,您正在DOM節點上調用jQuery方法prop()
; 而是使用elem.tagName
。
同樣,在getElemContents()
,應使用.value
而不是.val()
。 最后,這應該給您:
function getElemContents(elem){
var elementType = elem.prop.tagName;
if(elementType=='INPUT')return elem.value;
//... will add more here later
}
JS小提琴演示 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.