var a = $('#txta').val();
console.log(a);
结果是来自this url
的完整html代码现在我想获取所有#artikal-naziv
标签的内容(有96个)
var b = a.find("#artikal-naziv").text();
console.log(b);
结果:
Uncaught TypeError: a.find is not a function
任何帮助?
答案 0 :(得分:4)
实际上,您尝试在.find()
上调用string
,而不是在DOM元素中调用。
因为从$('#txta').val()
获得了string
,这就是Uncaught TypeError: a.find is not a function
的原因,因为string
没有.find()
方法。
您应将其更改为:
var a = $('#txta');
然后你可以写:
var b = a.find("#artikal-naziv").text();
注意:强>
现在我想获得所有#artikal-naziv标签的内容(有96个)
您无法为多个元素设置相同的ID #artikal-naziv
(96),id
在页面中应该是唯一的。
另一件事 .val()
调用假设您的元素是表单元素,您无法在.val()
或{{1}上调用div
},如果它不是表单元素,请使用 .html()
。
答案 1 :(得分:3)
根据我的描述,您可以使用var a = $('#txta').val();
将HTML作为字符串。如果是这样,则必须创建内存中元素并将此字符串设置为HTML。
然后你将有一个你可以查询的内存中的DOM部分。
您可以尝试这样的事情:
var html = '<span><p id="artikal-naziv">bla bla</p></span>';
var $tempElement = $('<div>').html(html);
console.log($tempElement.find('#artikal-naziv').text());
// or using vanilla JS
var tempElement = document.createElement('div');
tempElement.innerHTML = html;
console.log(tempElement.querySelector('#artikal-naziv').textContent);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
答案 2 :(得分:2)
.val()从元素中取出值.... 然后所有DOM操作都在元素上完成...因为.find之类的函数( ),。hide(),. show(),. closest()等与元素一起使用而不是值
以下修改应该有效......
var a = $('#txta'); // $("#ID") returns the element
console.log(a.val()); // $("#ID").val() returns the value
结果是来自此网址的完整HTML代码
现在我想获得所有#artikal-naziv标签的内容(有96个)
var b = a.find("#artikal-naziv").text(); // .find() easily works on element
console.log(b);
答案 3 :(得分:2)
因为&#34; a&#34;不是jQuery对象 - 它通常是一个包含返回元素(txta)值的字符串。
使用HELD
代替 - 可能会这样做。
答案 4 :(得分:2)