2016-12-28 58 views
0

当我做了“检查元素”的HTML代码,我是得了如何获得元素嵌套的属性值

<domain-picker class="pull-right" 
current="{"label":"AMN/GRP","value":"assf2324234"}" in-header="true" show-in-header="true"> 
    </domain-picker> 

任何人都可以请让我知道在jQuery的

  1. 如何获取上述“域选取器”元素的值“assf2324234”。
  2. 如何与新的字符串设定为“价值”上面的“域选取器”元素
+3

当前值将不会包含整个json值,因为您只显示“{”作为此值在第一个“”“其他部分不会是当前值。 – C2486

+0

@Rishi一定已经可以让OP从开发工具中复制live html。引号将是一个小问题....浏览器将不会输出正确的HTML,否则 – charlietfl

回答

6

的属性以下是评论显示步骤

// target element 
var $picker = $('domain-picker'), 
// parse current attribute value string to object 
current= JSON.parse($picker.attr('current')); 
// change value 
current.value ='someOtherString'; 
// stringify object and put back as attribute value 
$picker.attr('current', JSON.stringify(current)); 
3

修改你的HTML,使用单引号对于当前属性

<domain-picker class="pull-right" 
current='{"label":"AMN/GRP","value":"assf2324234"}' in-header="true" show-in-header="true"> 
</domain-picker> 

jQuery中

var json = $("domain-picker").attr("current"); 
json = JSON.parse(json) 
var value = json.value; 

这里的工作演示https://jsfiddle.net/758y0fp1/1/

0

您需要首先获得属性的值.attr jQuery中或的getAttribute()()在JavaScript中会有所帮助。现在由于该值是无效的JSON(按照您提供的html),将无效的JSON转换为有效,然后选择该值。

var obj = document.querySelector("domain-picker").getAttribute("current"); 
 
var json = obj.replace((/'/g), "\""); 
 
var obj = JSON.parse(json) 
 

 
//console log the retrieved value. 
 
console.log("value :", obj["value"]) 
 

 
// set attribute now 
 

 
obj["value"] = "1234567"; 
 

 

 
document.querySelector("domain-picker").setAttribute('current', JSON.stringify(obj));
<domain-picker class="pull-right" 
 
current="{'label':'AMN/GRP','value':'assf2324234'}" in-header="true" show-in-header="true"> 
 
    Hello inpsect me to see the changed attribute value. 
 
    </domain-picker>

0

正如@charlietfl提到的,如果你想使用jQuery,他的回答是你需要的1,这可以用纯JavaScript做太多,即。

// getting the element 
var picker = document.getElementsByTagName('domain-picker')[0]; 
// parsing current attribute string to object 
var current= JSON.parse(picker.getAttribute('current')); 
// changing the value 
current.value ='newString'; 
// stringify the object and set the attribute again like 
picker.setAttribute('current', JSON.stringify(current));