获取变量中某些标签的内容

get content of some tags inside a variable

var a = $('#txta').val();
console.log(a);  

结果已完成 html 代码来自 this url

现在我想获取所有#artikal-naziv个标签的内容(共有96个)

var b = a.find("#artikal-naziv").text();
console.log(b);

结果:

Uncaught TypeError: a.find is not a function

有什么帮助吗?

.val()从元素中取出值....全部DOM操作完成在元素上...因为像 .find() 、 .hide() 、 .show() 、 .closest() 等函数用于元素 而不是值

以下修改应该有效...

var a = $('#txta'); // $("#ID") returns the element
console.log(a.val()); // $("#ID").val() returns the value

结果已完成 html 来自此 URL

的代码

现在我想获取所有#artikal-naziv 标签的内容(共有 96 个)

var b = a.find("#artikal-naziv").text(); // .find() easily works on element
console.log(b);

因为 "a" 不是 jQuery 对象 - 它通常是一个包含返回元素 (txta) 值的字符串。

改用 $(a).find(...) - 可能就可以了。

参考 link:

实际上您是在 string 而不是 DOM 元素上调用 .find()

因为从 $('#txta').val() 你得到一个 string,这就是你得到 Uncaught TypeError: a.find is not a function 的原因,因为 string 没有 .find() 方法。

您应该将其更改为:

var a = $('#txta');

那你可以这样写:

var b = a.find("#artikal-naziv").text();

注:

Now I want to get content of all #artikal-naziv tags (there are 96)

您不能为多个元素 (96) 设置相同的 id #artikal-nazivid 在页面中应该是唯一的。

另一件事.val() call assumes that your element is a form element, you can't call .val() on a div or a span, if it isn't a form element use .html()

根据我从你的描述中得到的信息,你使用 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>

只需使用 .find 即可找到 children 并使用 .closest 即可找到 parents:

<div class='a'>
    <div class='b'>
        <div class='c'></div>
        <div class='c'></div>
        <div class='c'></div>
    </div>
</div>

js:

var a = $('.b');
a.find('.c'); // Will return all the objects with the class c
a.closest('.a'); // Will return the first parent with the class a