2012-11-06 62 views
1

的JavaScript語法糖有沒有一種簡單的方法在一行爲對象的值設置器

(node.innerText || node.textContent) = text 
// node = DOM node 
// text = string 

顯然上述不起作用做到這一點。

+0

我測試像'node.innerText? node.innerText = text:node.textContent = text',雖然不像語法糖那麼甜蜜,但似乎工作正常。 – Masiar

回答

1

首先,不那麼緊湊嘗試

node.innerText ? node.innerText = text : node.textContent = text 
+0

ahhh,但這又是太冗長 –

0

使用jQuery縮短你的語法

使用.text()方法

所以你的代碼會

if($(selector).text() = text){ 
// your code here 
} 
+0

沒有提到jquery –

2

只需使用node.innerText = node.textContent = text,這是無害的。

+0

我喜歡這個。它將適用於上述場景,但在我接受之前,我仍會繼續尋找幾分鐘的時間 –

+0

@JibiAbraham完全同意,如果有人能夠提出實際的有條件任務,那將是非常棒的。但我很悲觀,因爲看着[spec](http://www.ecma-international.org/ecma-262/5.1/#sec-11.13.1),它沒有留下太多的空間。 –

2

有人會做這樣的:

node['textContent' in node? 'textContent' : 'innerText'] = text 
+0

看中。我可能會在某處使用它。但仍然非常詳細 –

+1

那麼'window.TEXTPROP ='textContent'在節點呢? 'textContent':'innerText'和'node [TEXTPROP] = text'? – Leonid

+0

這似乎是我可以在更高層次上使用的東西。好一個 –