从字符串获取特定的东西

时间:2018-06-27 21:57:49

标签: javascript

我有一个看起来像这样的按钮

  <button aria-label="Connect with Yam Jeji" data-control-name="srp_profile_actions" class="search-result__actions--primary button-secondary-medium m5" data-ember-action="" data-ember-action-6020="6020" data-is-animating-click="true">

按钮内有aria-label,它看起来像这样。

aria-label="Connect with Yam Jeji"

现在,在这里,我只想选择/获取名称Yam Jeji

如何使用JavaScript实现此目标?例如,我有多个具有不同名称的按钮,并且名称不是静态的,即我们的aria标签可以是

aria-label="Connect with Yam Jeji"
aria-label="Connect with Varun Bidhu"
aria-label="Connect with Yaon Titu"

我如何才能在这里获得名称(“连接”在这里是静态的)

4 个答案:

答案 0 :(得分:2)

要获得预期结果,请使用以下选项
1.使用querySelector获取所有元素。
2.遍历元素数组。
3.使用getAttribute方法获取aria标签值。
4.使用拆分和弹出来获取特定的单词。

var ariaTxt = document.querySelectorAll('[aria-label]');

ariaTxt.forEach(v =>{
  console.log(v.getAttribute('aria-label').split("Connect with ").pop())
})
  <button aria-label="Connect with Yam Jeji" data-control-name="srp_profile_actions" class="search-result__actions--primary button-secondary-medium m5" data-ember-action="" data-ember-action-6020="6020" data-is-animating-click="true">

代码示例-https://codepen.io/nagasai/pen/KeGjrZ

答案 1 :(得分:1)

我不完全明白您的意思,但是如果您将字符串放入aria标签中,请在“ Connect With”处将其拆分,然后弹出该名称,即可得到名称。

例如。

buttonText = "Connect With Yam Jeji"

buttonText.split("Connect With ").pop();

console.log(buttonText);

它将输出“ Yam Jeji”

答案 2 :(得分:1)

1)添加onClick in按钮

<button onclick="teste(this)" aria-label="Connect with Yam Jeji" data-control-name="srp_profile_actions" class="search-result__actions--primary button-secondary-medium m5" data-ember-action="" data-ember-action-6020="6020" data-is-animating-click="true">
 teste</button>

2)在上方添加此功能

<script>
        function teste(inp){
            var ariaLabel =  inp.getAttribute("aria-label");
            ariaLabel = ariaLabel.replace("Connect with ", "");
            alert(ariaLabel);

        }
</script>

答案 3 :(得分:1)

这是一个带有正则表达式的健壮的jQuery解决方案:https://jsfiddle.net/xpvt214o/316543/

var ariaList = $("button[aria-label*='Connect with ']");

ariaList.each(function() {
  console.log($(this).attr('aria-label').match(/Connect with (.*)/)[1]);
});

它还与没有es6(例如IE11)的旧版浏览器兼容。