从按钮属性中选择自定义标签

时间:2018-09-28 09:00:57

标签: javascript jquery html5 dom custom-tag

我已经创建了如下所示的按钮元素结构

<input 
      type="button" 
      class="btn btn-primary" 
      name="redirect" 
      value="<mycustomtag data-id=15>"
      title="<mycustomtag data-id=14>"
>

现在,每当DOM准备就绪时,我都试图找出自定义元素并尝试用字符串替换。但是我无法替换自定义元素。

我曾经找到的摘录如下

jQuery("mycustomtag").each(function(){
    //process here
});

PS在以下情况下可以正常工作:

<div><mycustomtag data-id=20></div>
<h4><mycustomtag data-id=18></h4>

4 个答案:

答案 0 :(得分:1)

您的代码

  

jQuery(“ mycustomtag”)

将尝试找到名为mycustomtag的标签,而我了解的是您正在尝试替换输入属性吗?

尝试关注

//if you want to get values
var value = $("#btnCustom").attr("value");
var title = $("#btnCustom").attr("title");
alert(value);
alert(title);

//if you want to set values
$("#btnCustom").attr("value","replacevalue");
$("#btnCustom").attr("title","replace value 2");
value = $("#btnCustom").attr("value");
title = $("#btnCustom").attr("title");
alert(value);
alert(title);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input 
      type="button" 
      class="btn btn-primary" 
      name="redirect" 
      value="<mycustomtag data-id=15>"
      title="<mycustomtag data-id=14>"
      id="btnCustom"
>

答案 1 :(得分:1)

您找不到它们,因为属性值就像字符串一样。

要找到这些元素,您需要通过使用.prop()选择特定属性来基于主标签选择它们,例如:

$('input').each(function() {
   $(this).val();
   $(this).prop('title');
});
  

PS在以下情况下可以正常工作

那是因为在这种情况下,它被视为DOM中的标记元素,因此jQuery可以通过简单的选择器找到它的原因。

$('input').each(function() {
  console.log($(this).val());
  console.log($(this).prop('title'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="button" class="btn btn-primary" name="redirect" value="<mycustomtag data-id=15>" title="<mycustomtag data-id=14>">

答案 2 :(得分:0)

在第一个HTML代码中,您要查找的是value或title属性。您第二个是元素名称。

要根据元素的值选择元素,请使用以下语法:

$("input[value='<mycustomtag data-id=15>'")

根据标题选择元素的操作与此类似。

答案 3 :(得分:0)

如果您将自定义标签放在另一个标签的属性中,则该标签将不会在页面中呈现,也就是说,它不会成为文档DOM树的一部分,它将只是一个{ {1}}在属性中,这就是为什么当您使用string时您什么都不会得到的原因,但是如果您将其作为jQuery("mycustomtag")div的子元素,它将起作用

因此,在您的特定情况下,您需要使用 .attr() method 来从此特定属性中获取它,或者使用 .val() method (如果它在值中)

span

演示:

jQuery("input").attr("title");
jQuery("input").val();
console.log(jQuery("input").attr("title"));
console.log(jQuery("input").val());