给定同一对象的另一个属性(JS / jQuery)的值,查找HTML对象的属性的值

时间:2019-06-11 19:49:33

标签: javascript jquery html

我正在尝试查找消息的名称值,该消息的num值是已知的,以便可以将其和名称存储为单独的变量。例如,如果我想获取消息5的名称值,那么当我只想使用jQuery来获取消息时,就必须进入源代码才能找到它,但是我没有经验,并且已经无法找到一种方法。我想做类似的事情:

(setq org-link-abbrev-alist
    `(
         ("orgdir" . ,(format "file:%s%%s" (file-name-as-directory org-directory)))
         ...

但是这种语法显然是错误的。

这是包含两个属性的div:

$("name") where $("num") = 1 

如果我还不知道该如何使用jQuery获得名称?

我知道如何查找包含num = 1的元素,但仅包含整个元素。如何只提取name属性而不提取整个元素?

我知道这个问题非常基本,但是Google搜索没有给我一个很好的答案。正确的语法是什么?

3 个答案:

答案 0 :(得分:1)

鉴于您分别指的是名称属性和值属性:

使用Jquery:

获取名称attr值:

let whatIWant = $('.msg[num="1"]').attr("name")

获取整个jquery对象:

let elem = $('.msg[num="1"][name]')

如果您需要上述jquery对象中的dom元素:

let htmlElem = elem[0]

答案 1 :(得分:1)

尝试一下:

var divName = $("[num = 1]").attr("name")

假设您要将数字1放入硬代码中,则可以按照上面的示例进行操作。现在,如果数字是通过代码填充的变量,并且被称为x,请尝试以下操作:

var divName = $("[num = " + x + "]").attr("name")

希望这就是您想要的。

答案 2 :(得分:0)

使用CSS选择器获取num值为1的任何元素的名称属性。此特定解决方案适用于num值为1的多个元素。

您没有指定任何元素,因此我假设您想要任何符合条件的元素:

//x is taking the place of your number (assuming it's in the code)
let x = 1
//aggregate elements into an array using spread and the CSS selector []
//which targets attributes
//use the value of X to gather the elements
let valueEls = [...$(`[num="${x}"]`)]
//initialize empty names container
let names = []
//push the name of each element into the names container
valueEls.forEach(el => names.push($(el).attr('name')))
console.log(names)